ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
無料
ブラウザよりも高速アクセス!
 

GNU Multi-Precision Library

索引 GNU Multi-Precision Library

GNU Multi-Precision Library(GMP)は、多倍長整数など任意の精度の算術ライブラリで、フリーソフトウェアである。符号付き整数、有理数、浮動小数点数を扱う。事実上、動作中のハードウェアが持つメモリ容量以外には精度は制限されない(オペランドの大きさは32ビットマシンでは 231 ビット、64ビットマシンでは 237 ビット)。様々な関数があり、それらが一貫したインタフェースで提供されている。基本インタフェースはC言語だが、他の言語用ラッパーを使えば、C++、OCaml、Perl、Pythonなどでも使える。また、Ruby 2.1でのように、言語コアに組み込まれている例もある。 GMPの主な用途は暗号(実用と研究)、インターネットセキュリティ、数式処理システムである。 GMPは、どんなオペランドの大きさでも他の多倍長整数ライブラリよりも高速であることを目標としている。このために、以下の点を重視している。.

26 関係: 任意精度演算ライブラリフリーソフトウェアアルゴリズムアセンブリ言語クロスプラットフォームC++C言語CPU精度 (算術)記憶装置GNU Lesser General Public LicenseGNUプロジェクトITmediaMathematicaOCamlPARI/GPPerlPythonRuby暗号有理数最適化 (情報工学)浮動小数点数数式処理システム整数

任意精度演算

任意精度演算とは、数値の精度を必要ならいくらでも伸ばしたりできるような演算システム(実際上は利用可能なメモリ容量に制限されるが)による演算である。.

新しい!!: GNU Multi-Precision Libraryと任意精度演算 · 続きを見る »

ライブラリ

ライブラリ()は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶ時は、それ単体ではプログラムとして作動させることはできない実行ファイルではない場合がある。ライブラリは他のプログラムに何らかの機能を提供するコードの集まりと言うことができる。ソースコードの場合と、オブジェクトコード、あるいは専用の形式を用いる場合とがある。たとえば、UNIXのライブラリはオブジェクトコードをarと呼ばれるアーカイバでひとまとめにして利用する。図書館()と同様にプログラム(算譜)の書庫であるので、索引方法が重要である。 また、ソフトウェア以外の再利用可能なものの集合について使われることもある。.

新しい!!: GNU Multi-Precision Libraryとライブラリ · 続きを見る »

フリーソフトウェア

フリーソフトウェア (free software) とは、ソフトウェアのうち、フリーソフトウェア財団が提唱する自由ソフトウェアを指す。大半のフリーソフトウェアは無償(フリー)で配布されているが、定義に従えば、ここでいうフリーソフトウェアについて一次配布が無償である必要は必ずしもない。 フリーソフトウェア財団はフリーソフトウェアの定義を提示している。ソフトウェアライセンスについてはフリーソフトウェアライセンスを参照。 定義に照らして自由ではない、すなわち改造や再配布などに制限が掛かっていたり、ソースコードが開示されていない、無償で利用できるソフトウェアとは異なる概念であり、この場合はフリーウェアもしくは無料ソフトと呼ぶことが望ましいとフリーソフトウェア財団はしている。 逆に定義に従ったソフトウェアであれば、一次的な配布が有償であってもフリーソフトウェアと呼ぶことができる。ただし、前述したように配布が自由であるため、ほとんどのフリーソフトウェアは無償で配布されている。 また、現状強い影響力を持つ定義として、フリーソフトウェア財団の定義の他に、DebianフリーソフトウェアガイドラインとそれをベースにしたOpen Source Initiativeのオープンソースの定義がある。.

新しい!!: GNU Multi-Precision Libraryとフリーソフトウェア · 続きを見る »

アルゴリズム

フローチャートはアルゴリズムの視覚的表現としてよく使われる。これはランプがつかない時のフローチャート。 アルゴリズム(algorithm )とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。 「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。 コンピュータにアルゴリズムをソフトウェア的に実装するものがコンピュータプログラムである。人間より速く大量に計算ができるのがコンピュータの強みであるが、その計算が正しく効率的であるためには、正しく効率的なアルゴリズムに基づいたものでなければならない。.

新しい!!: GNU Multi-Precision Libraryとアルゴリズム · 続きを見る »

アセンブリ言語

モトローラ MC6800 のアセンブリ言語のソースコード アセンブリ言語(アセンブリげんご、英: assembly language)とは、コンピュータ、マイクロコントローラ、その他のプログラム可能な機器を動作させるための機械語を人間にわかりやすい形で記述する、代表的な低水準言語である。なお、英語の assembly とは「組立」という意味である。.

新しい!!: GNU Multi-Precision Libraryとアセンブリ言語 · 続きを見る »

クロスプラットフォーム

プラットフォーム(cross-platform)とは、異なるプラットフォーム(例えばPC/AT互換機とMacintosh、あるいはWindows・macOS・FreeBSD・Linuxなどのように、仕様が全く異なる機械(ハードウェア)またはオペレーティングシステム)上で、同じ仕様のものを動かすことが出来るプログラム(ソフトウェア)のことを言う。同様の呼称にマルチプラットフォームがある。 また、家庭用ゲームにおいては「クロスプラットフォーム」と「マルチプラットフォーム」で意味が異なる場合がある。本項ではこのケースについても後述する。.

新しい!!: GNU Multi-Precision Libraryとクロスプラットフォーム · 続きを見る »

C++

C++(シープラスプラス)は、汎用プログラミング言語の一つである。日本語では略してシープラプラ、シープラなどとも呼ばれる。.

新しい!!: GNU Multi-Precision LibraryとC++ · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: GNU Multi-Precision LibraryとC言語 · 続きを見る »

CPU

Intel Core 2 Duo E6600) CPU(シーピーユー、Central Processing Unit)、中央処理装置(ちゅうおうしょりそうち)は、コンピュータにおける中心的な処理装置(プロセッサ)。 「CPU」と「プロセッサ」と「マイクロプロセッサ」という語は、ほぼ同義語として使われる場合も多いが、厳密には以下に述べるように若干の範囲の違いがある。大規模集積回路(LSI)の発達により1個ないしごく少数のチップに全機能が集積されたマイクロプロセッサが誕生する以前は、多数の(小規模)集積回路(さらにそれ以前はディスクリート)から成る巨大な電子回路がプロセッサであり、CPUであった。大型汎用機を指す「メインフレーム」という語は、もともとは多数の架(フレーム)から成る大型汎用機システムにおいてCPUの収まる主要部(メイン)、という所から来ている。また、パーソナルコンピュータ全体をシステムとして見た時、例えば電源部が制御用に内蔵するワンチップマイコン(マイクロコントローラ)は、システム全体として見た場合には「CPU」ではない。.

新しい!!: GNU Multi-Precision LibraryとCPU · 続きを見る »

精度 (算術)

精度(せいど、precision)とは、数値を表現する細かさである。.

新しい!!: GNU Multi-Precision Libraryと精度 (算術) · 続きを見る »

記憶装置

GB SDRAM。一次記憶装置の例 GB ハードディスクドライブ(HDD)。コンピュータに接続すると二次記憶装置として機能する SDLT テープカートリッジ。オフライン・ストレージの例。自動テープライブラリで使う場合は、三次記憶装置に分類される 記憶装置(きおくそうち)は、コンピュータが処理すべきデジタルデータをある期間保持するのに使う、部品、装置、電子媒体の総称。「記憶」という語の一般的な意味にも対応する英語としてはメモリ(memory)である。記憶装置は「情報の記憶」を行う。他に「記憶装置」に相当する英語としてはストレージ デバイス(Storage Device)というものもある。.

新しい!!: GNU Multi-Precision Libraryと記憶装置 · 続きを見る »

GNU Lesser General Public License

GNU Lesser General Public License(以前は、GNU Library General Public Licenseだった)または GNU LGPL、単にLGPLは、フリーソフトウェア財団(Free Software Foundation、以下FSFと略称)が公開しているコピーレフト型のフリーソフトウェアライセンスである。八田真行による日本語訳ではGNU 劣等一般公衆利用許諾書と呼称している。.

新しい!!: GNU Multi-Precision LibraryとGNU Lesser General Public License · 続きを見る »

GNUプロジェクト

GNUプロジェクト(グヌープロジェクト、)とは、フリーソフトウェアマス・コラボレーションプロジェクトである。 プロジェクトは1983年9月27日にMITのリチャード・ストールマンにより発表された。このプロジェクトの狙いは、ユーザーが自由にソフトウェアを実行し、(コピーや配布により)共有し、研究し、そして修正するための権利に基づいたソフトウェアを開発し提供することにより、ユーザーにそのような自由な権利を与えた上でコンピュータやコンピューティングデバイスの制御をユーザーに与えることにある。GNUのソフトウェアはこれらの自由な権利を(そのライセンスによって)法的に保障しているため、フリーソフトウェアである。なおフリーソフトウェアの「フリー」という言葉は常に自由な権利を指し示すために必要なため使われている。 コンピュータの全てのソフトウェアが、(使用、共有、研究、修正を行うための)自由な権利を全てユーザーに付与することを確保するためには、ソフトウェアの中で最も基本的かつ重要な部分である(ユーティリティプログラムを数多く含む)オペレーティングシステムをフリーソフトウェアとすることが必要となった。GNU宣言によると、GNUプロジェクトの創立目標はフリーオペレーティングシステムを設立し、さらに可能であれば、「フリーでないソフトウェアを全く使わないでも済むようUNIXシステムに通常付属する有益なもの全て」も構築することであった。ストールマンはこのオペレーティングシステムをGNU("GNU's not Unix"を意味する再帰的頭字語)と呼ぶことに決め、その設計をプロプライエタリオペレーティングシステムであるUNIXの設計に基づくようにした。GNUの開発は1984年1月に開始された。1991年、リーナス・トーバルズによりGNUプロジェクトとは関係のないプロジェクトで開発されたLinuxカーネルが発表され、1992年12月にGNU General Public Licenseのバージョン2に基づき利用できるようにした, kernel.org, December 1992。LinuxカーネルはGNUプロジェクトによって既に開発されていた、オペレーティングシステムのユーティリティと組み合わされ最初のフリーソフトウェアオペレーティングシステムとして認められた。このフリーソフトウェアオペレーティングシステムはLinuxやGNU/Linuxとして知られている。 GNUプロジェクトは現在、ソフトウェア開発、意識改革、政治的キャンペーンや、新しい題材の共有などを行っている。.

新しい!!: GNU Multi-Precision LibraryとGNUプロジェクト · 続きを見る »

ITmedia

ITmedia(アイティメディア)は、ソフトバンクグループ傘下のアイティメディア株式会社(英文名称:ITmedia Inc.)が運営するIT系ニュースサイトである。ソフトバンクグループ子会社で出版・ブロードバンドコンテンツ等のメディアやマーケティング事業を統括する純粋持株会社「SBメディアホールディングス株式会社」の傘下にある。.

新しい!!: GNU Multi-Precision LibraryとITmedia · 続きを見る »

Mathematica

Mathematica(マセマティカ)は、スティーブン・ウルフラムが考案し広く使われている数式処理システム。ウルフラム・リサーチの、ウルフラムが率いる数学者とプログラマのチームが開発し、同社が販売している。Mathematicaは項書き換えを基本として、複数のパラダイムをエミュレートするプログラミング言語としても強力である。.

新しい!!: GNU Multi-Precision LibraryとMathematica · 続きを見る »

OCaml

OCaml( 、オーキャムル、オーキャメル)は、フランスの INRIA が開発したプログラミング言語MLの方言とその実装である。MLの各要素に加え、オブジェクト指向的要素の追加が特長である。かつては Objective Caml という名前で、その略として OCaml と広く呼ばれていたが、正式に OCaml に改名された。.

新しい!!: GNU Multi-Precision LibraryとOCaml · 続きを見る »

PARI/GP

PARI/GPは計算機代数アプリケーションであり、数論に関する様々な演算を行うために開発された。バージョン2.1.0からはフリーソフトウェアとしてGNU General Public Licenseにしたがって米フリーソフトウェア財団から公開、配布されている。PARI/GPはマルチプラットフォームであり、多くのプラットフォームで実行することができる。.

新しい!!: GNU Multi-Precision LibraryとPARI/GP · 続きを見る »

Perl

Perl(パール)とは、ラリー・ウォールによって開発されたプログラミング言語である。実用性と多様性を重視しており、C言語やsed、awk、シェルスクリプトなど他のプログラミング言語の優れた機能を取り入れている。ウェブ・アプリケーション、システム管理、テキスト処理などのプログラムを書くのに広く用いられている。 言語処理系としてのperlはフリーソフトウェアである。Artistic LicenseおよびGPLのもとで配布されており、誰でもどちらかのライセンスを選択して利用することができる。UNIXやWindowsなど多くのプラットフォーム上で動作する。.

新しい!!: GNU Multi-Precision LibraryとPerl · 続きを見る »

Python

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。.

新しい!!: GNU Multi-Precision LibraryとPython · 続きを見る »

Ruby

Ruby(ルビー)は、まつもとゆきひろ(通称 Matz)により開発されたオブジェクト指向スクリプト言語であり、スクリプト言語が用いられてきた領域でのオブジェクト指向プログラミングを実現する。 また日本で開発されたプログラミング言語としては初めて国際電気標準会議で国際規格に認証された事例となった。.

新しい!!: GNU Multi-Precision LibraryとRuby · 続きを見る »

暗号

暗号とは、セキュア通信の手法の種類で、第三者が通信文を見ても特別な知識なしでは読めないように変換する、というような手法をおおまかには指す。いわゆる「通信」(telecommunications)に限らず、記録媒体への保存などにも適用できる。.

新しい!!: GNU Multi-Precision Libraryと暗号 · 続きを見る »

有理数

有理数(ゆうりすう、rational number) とは、二つの整数 a, b (ただし b は 0 でない)をもちいて a/b という分数で表せる数のことをいう。b.

新しい!!: GNU Multi-Precision Libraryと有理数 · 続きを見る »

最適化 (情報工学)

ンピュータ関連において最適化(Optimization)という語は、最適化問題のそれを指すことも多いが、ここでは、コンパイラ最適化などに似た話題について説明する(「情報工学」と記事名には付いているが、全く information engineering の話題ではない)。コンピュータシステムは、主としてコストパフォーマンス上の理由から、効率的に(efficiently)動作することが望ましいことが多い。例えば、コンパイラ最適化は、高速化のためだったり、メモリの使用量を削減するためだったり、電力消費を抑えるためだったりする。最適化の対象となるシステムは、1つのプログラムの場合もあるし、複数のコンピュータの場合もあるし、インターネットのようなネットワーク全体の場合もある。 "optimization" という単語の語源は "optimal"(最適な、最善な)と同じだが、最適化によって真に最適なシステムとなることは稀である。最適化されたシステムは一般にある面でのみ最適となる。プログラムの実行時間を削減するためにメモリ使用量を増やしてでも実行時間を最適化したり、逆にメモリが少ないシステムで実行時間が長くなることを覚悟してメモリ使用量が少ないアルゴリズムを選んだりする。あらゆる場合に最適な方法や設計は存在しないので、技術者は最も重要と思われる観点での最適化のために妥協点を探る。さらに、ソフトウェアを完全に最適にする(それ以上どうやっても最適化できない状態にする)のに要する労力は、その最適化されたシステムを利用することで得られる利益よりも大きい。従って、最適化の工程は完全な最適解に到達する以前に終了させられるのが普通である。幸いなことに、効果の大きい改善は最適化工程の初期に現れることが多い。 最適化は様々なレベルで行われる。最も高いレベルの最適化は設計段階に行われる。設計が最適化されていれば、実装でも効率的なアルゴリズムを利用でき、品質のよいコードになるという利点がある。コンパイラ最適化を使えば、実行ファイルがさらに最適化される。最も低いレベルでは、コンパイラを使わずに人間がアセンブリ言語で最適なコードを書く。コンパイラ最適化の技術の進歩と最近のCPUの複雑さのため、コンパイラよりも最適なコードを人間が書くには大変な技能を要する。そのため、このような最適化を行うプロジェクトは滅多にない。最適化は例外的なケースを考慮しつつ、複雑な妥協点を探ることが多い。従って最適化されたプログラムはプログラマが理解できないほど難解になることも多い。可能であれば等価であることが保証されながらプログラムを変形させるなどの手法でバグの可能性をゼロにすべきだが、できない場合、できてないコードではバグを多く含む危険性がある。.

新しい!!: GNU Multi-Precision Libraryと最適化 (情報工学) · 続きを見る »

浮動小数点数

浮動小数点数(ふどうしょうすうてんすう、英: floating point number)は、浮動小数点方式による数のことで、もっぱらコンピュータの数値表現において、それぞれ固定長の仮数部と指数部を持つ、数値の表現法により表現された数である。.

新しい!!: GNU Multi-Precision Libraryと浮動小数点数 · 続きを見る »

数式処理システム

数式処理システム(すうしきしょりシステム、Computer algebra system、CAS,Formula Manipulation System,広義にはSymbolic Computation System)は、コンピュータを用いて数式を記号的に処理するソフトウェアである。コンピュータによる通常の数値計算処理では実数を有限精度の数値(浮動小数点数)で近似し、数値と演算に対して丸め誤差を許容して計算を行なうので数学的に厳密な結果を得ることが困難もしくは不可能であるのに対して、数式処理システムでは主に抽象度の高い記号列を取り扱い,可能な範囲で代数的な規則に基づきながら厳密な記号処理を行う。ただし最近では応用性と実用性の観点から、数値とその演算に対して浮動小数点数も扱える(数値・数式の)融合計算システムとでも呼べるような数式処理システムも増えて来た。 また,数式処理システムに向けた計算アルゴリズムを研究する分野も数式処理(あるいは computer algebra の直訳として計算機代数)と呼ぶ。.

新しい!!: GNU Multi-Precision Libraryと数式処理システム · 続きを見る »

整数

数学における整数(せいすう、integer, whole number, Ganze Zahl, nombre entier, número entero)は、0 とそれに 1 ずつ加えていって得られる自然数 (1, 2, 3, 4, …) および 1 ずつ引いていって得られる数 (−1, −2, −3, −4, …) の総称である。 整数は数直線上の格子点として視覚化される 整数の全体からなる集合は普通、太字の Z または黒板太字の \mathbb Z で表す。これはドイツ語 Zahlen(「数」の意・複数形)に由来する。 抽象代数学、特に代数的整数論では、しばしば「代数体の整数環」の元という意味で代数的整数あるいは「整数」という言葉を用いる。有理数全体の成す体はそれ自身が代数体の最も簡単な例であり、有理数体の代数体としての整数環すなわち、「有理数の中で整なもの」の全体の成す環は、本項でいう意味での整数全体の成す環である。一般の「整数」との区別のためにここでいう意味の整数を有理整数 (rational integer) と呼ぶことがある接頭辞「有理(的)」(rational) はそもそも「整数比」であるという意味なので、この呼称は自己循環的にもみえる。しかし、有理整数と呼ぶ場合の「有理」は「有理数の中で」という程度の意味の単なる符牒であって、「整数比」という本来の意味合いに拘るのは徒労である。。.

新しい!!: GNU Multi-Precision Libraryと整数 · 続きを見る »

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »