ご利用される方へお願い
  現在配布中のソフトは、Alpha Edition (開発中版) または、Beta Edition(動作確認中版) です。
 動作エラーや計算結果が不正確なケースを発見しましたら、 当方の 掲示板 へ、フィードバックをお願いします。
 
 
 
VBAで多倍長演算を行うためのライブラリ と サンプルプログラム
    巨大整数演算から多倍長演算へ名称を変更しました(Ver1.86)
 
  BigInt Ver.1.94 Alpha Edition (開発中版) [2010/12/05]
 

項目

DownLoad

動作確認 (動作条件)

AutoCAD VBA 版 DownLoad(BigIA194.zip/1,533,310Byte) AutoCAD 2000i
Excel VBA 版
ワークシート関数付
DownLoad(BigIE194.zip/2,400,894Byte)
 

注意

ワークシートでユーザー関数を多用しているので、
ファイル読込時には(自動再計算により、
編集可能な状態になるまでに)時間がかかります。
さらに、編集時も同じ理由により
(編集可能な状態になるまでに)時間がかかります。
 
また、ファイルサイズを小さくする為 Excel 2000 で保存しています。
よって、2002以降のバージョンで開くと、
最初の読込時に多少時間がかかります。
 
サンプルプログラムの確認のみならば、新規ブックに、
下記 VBA Export Files をインポートしてご利用下さい。
Excel 2000, 2002
 

注意

Mac(Macintosh) 版では
ご利用できません
  2004 for Mac,
X for Mac,
2001 for Mac,
98 for Macintosh は、
内部のVBAのバージョン
(Application.VBE.Version) 
が 5.0 なので、
使用できません
Excel 2008 for Mac は
VBAが除去されたので、
ご利用できません
VBA Export Files
(bas, frm, frx)
DownLoad(BigIF194.zip/469,797Byte) VBA 6 以降 
連続計算リスト DownLoad(BICalcList.zip/19,830Byte)
DownLoad(BICalcList2.zip/52,87Byte)
DownLoad(BICalcList3.zip/25,111Byte)
DownLoad(BICalcList4v2.zip/35,204Byte)
 
   Ver.1.89からVBA Export Filesを追加し、連続計算リストを別ファイルとしました
 
 
不具合情報 (最新版アップ後に判明した不具合のお知らせと対策)
掲載日 モジュール名 関数名 不具合の内容 対策 その他
2012/11/16  BigInt_Definition_1 Division 除数が10^±N)時の符号処理
(除数が-1E±N時で被除数が負値の場合に解が正でなく負になっていた)
以下のモジュールごと置換え
BigInt_Definition_1_1941.zip (44,275Byte) 
 
BIReciprocal  収束計算中のLog引数負値処理  
 
多倍長演算とは、
  数値の桁の精度を任意に設定可能な演算このとで、任意精度演算ともいいます
 
  通常、標準で取扱えるデータ型以上の大きさの数値を正確に演算するための
  データタイプやその演算のことを、多倍長整数(演算)(または多倍長演算)といいます。
   
  VBAで標準で取扱えるデータ型以上の大きさの数値を正確に取扱えるように、
  データ型にユーザー定義型を定義しています。
  そのデータ型は、「符号+整数部(常に正)+指数部」で、整数部は文字列で格納しています。
 
 
サンプルプログラムの説明 (画像・説明用動画)
 
 操作説明の動画(wmv)が こちら にあります
 
 

※ 画像は開発中の以前のバージョンものです

 
 
ワークシート関数の説明 (画像)
 
ワークシート用ユーザー関数の使用例
 
5000!(五千の階乗)の計算例
 
クラスで同じ誕生日の生徒がいる確率は? の計算例
 

概説 
  このライブラリは、ユーザー定義型データ型を定義して、
整数部 2,147,483,647桁、指数部10の2,147,483,647乗の数値まで取り扱うことが出来ます。
   
正の最大値  +999・・・(2,147,483,647桁)・・・999E+2,147,483,647 
正の最小値  +1E-2,147,483,647
ゼロ  0
負の最大値  -1E-2,147,483,647
負の最小値  -999・・・(2,147,483,647桁)・・・999E+2,147,483,647 
制限 VBA標準の文字列操作関数 Left(string, length) などの制限(※1)により、
一部の関数は、求める桁数に、
1073741824−α(関数内部で使用する余裕桁) 桁
以上の値を設定できません
 
※1 引数 length (バリアント型 内部処理形式 Long)の上限(※2)
※2 上限 1073741824(=1024x1024x1024=1ギガ)
 
     但し、メモリとPCの性能の制限で実用範囲は限られます。
ちなみに、1E+1024000は、1の後にゼロが1,024,000個続くわけですが、
実際に書き表すとすると、1文字 8bit=1byte とすると、
数字1つに必要なメモリ = 1,024,000 byte = 1,024 KB = 1 MB となります。
たとえばこれが、加算であれば2つの数字に解が1つですから計3個で
  3MB+α(計算に必要なメモリ)必要です。
開発中の演算速度の感触や、メモリやその他を考慮すると実用的に
取り扱える範囲の 上限は、  上限桁数は、四則計算で、
±1E±30000  1,000,000桁 程度です。
ただし、計算時間はかかります。
   (例 100,000桁と100,000桁 の加算で 8秒 程度)
  (例 2,000,000桁と2,000,000桁 の加算で 6秒 程度 By Ver.1.89 <P4 3.2Ghz>)
  
別のVBA内に組込んでプログラム内から利用する目的で作成していますが、
Excel VBA 版は、ワークシート関数用のユーザー関数も組み込んでありますので、
ワークシート上でも使用できます。
ただし、演算速度が速くないので、大量の繰り返し計算用途にはむきません。
 
使用方法(操作マニュアル)はありませが、Excel VBA 版に簡単な説明がありますので参照してください
 
 
注意事項など
  必要なエラー処理や動作確認が十分に出来ていない Alpha Edition(開発途中版)です
動作に致命的な不具合や演算結果が不正確な可能性があります
必ずデータのバックアップを取った上でご利用下さい
 
<Optional>を使用した省略可能な引数があるので、OpenOffice.org 最新版(v3.0) の VBA には対応していません
 
 
制限
  VBA標準の文字列操作 Left(string, length) などの制限(※1)により、
一部の関数は、求める桁数に、1073741824−α(関数内部で使用する余裕桁)桁 以上の値を設定できません
 
※1 引数 length (バリアント型 内部処理形式 Long)の上限(※2)
※2 上限 1073741824=1024x1024x1024 [=1GB]
 
 
その他
  そのほか使用条件等は上記ファイルに添付されている readme.txt ファイルをお読み下さい。
 
 
更新内容
 
[2010/12/05] Ver.1.94 Alpha Edition(開発中版) 変 更 逆数(BIReciprocal) Do〜Loop内のWait時間変更
加算(BigIntAdd,BigIntAdd2),減算(BigIntSub,BigIntSub2),乗算(BigIntMulS),除算(BigIntDiv,BigIntDiv2) 頭の0を削除前に必要判別の追加
乗算(BigIntMulK,BigIntMulF),逆数(BIReciprocal) 「エラーチェック」をスキップ処理
BIIsError,BIExpN2BIT,String2BigInt,BIStringCheck,BIKetaAwase,BIKeta,CutTopZeroS,CutTopZero Asc関数の引数
  (不必要な処理を削除/Left関数で先頭文字抽出していた)
BIStr2Exp,BIExpN2BIT 頭の0を削除前に必要判別の追加
BIStr2Exp 末尾の0を削除前に必要判別の追加
1?、−1?、0? If順序変更
パブリック定数(FFTLimitN) デフォルト設定値変更[18←17]
最大公約数(BIGcd),最小公倍数BILcm) Do〜Loop内にWait追加
底数の変換(BIBinary2Decimal) Asc関数で高速化
平方根(ニュートン法) 公式に忠実な式に変更 <変型で相加平均法と同じになっていた>
正接Tanの逆関数(BIAtnR_BS) 引数(X)が0の処理
円周率<表より>(BIPiList) 指数(小数点以下桁数)計算追加
円周率<表より>(BIPiList) 高速化(Midステートメント←文字連結子&)
自然対数の底乗(BIE) 指数(小数点以下桁数)計算追加
自然対数の底乗(BIE) 高速化(Midステートメント←文字連結子&)
全般 Withステートメント対応漏れ見直し
仕様変更 モジュール名変更(BigInt_Definition_FFT←BigInt_Functions_FFT)
モジュール名変更(BigInt_Functions_2←BigInt_Functions_7)
モジュール名変更(BigInt_Functions_AGM←BigInt_Functions_B)
モジュール名変更(BigInt_Functions_Equation←BigInt_Functions_8)
モジュール名変更(BigInt_Functions_Logarithm←BigInt_Functions_5)
モジュール名変更(BigInt_Functions_Napier←BigInt_Functions_4)
モジュール名変更(BigInt_Functions_Pi←BigInt_Functions_A)
モジュール名変更(BigInt_Functions_Powers←BigInt_Functions_6)
モジュール名変更(BigInt_Functions_Sort←BigInt_Functions_9)
モジュール名変更(BigInt_Functions_SqrCub←BigInt_Functions_2)
モジュール名変更(BigInt_Functions_Ttrigonometric←BigInt_Functions_3)
モジュール名変更(BigInt_Functions_Ttrigonometric2←BigInt_Functions_3_2)
平方根(BISqr) 引数順序変更
仕様変更 算術幾何平均(BIAGM) 引数追加(debug_,debug2_)
新規追加 モジュール(BigInt_Functions_3,BigInt_Functions_Combination) 新規追加
階乗(BIFactorial2) 新規追加
スターリングの近似(BIStirlingsApproximation) 新規追加
楕円積分(BICELbyAGM,BIGEL),Jacobiの楕円関数(BIsncndn),楕円積分の逆関数(BIam,BIinvEL)
PrivateFunction 第2種 不完全楕円積分(BIEL)
順列(BIPermutation),組合せ(BICombination) 新規追加
修 正 商の整数部(BIQuotient)剰余(BIMod) 商の桁数(N)算出式
逆数(BIReciprocal) 経過時間出力の不具合
数値読込(BILoad) 解説部コメント修正
正弦,余弦,正接(BISinBS,BICosBS,BITanBS) 引数変換フラグ(FLG)コメント
正接Tanの逆関数(BIAtn_BS) 引数(X)が0に対応
正接Tan(BITanBS) 引数(X)時の処理修正
依存の記載順をモジュール名変更後の順序に見直し
[2010/06/04] Ver.1.93 Alpha Edition
(開発中版)
 変 更 商の整数部(BIQuotient)剰余(BIMod) 変更
三角関数(BISin,BICos,BITan)に5倍角の公式を適用し高速化
逆三角関数(BIAtn)に加法定理の公式を適用し高速化
三角関数(BISinBS,BICosBS,BITanBS)に5倍角の公式を適用し高速化
逆三角関数(BIAtnBS)に加法定理の公式を適用し高速化
モジュール移動(BigInt_Definition_3←BigInt_Functions_1) 1?、−1?、0? 
新規追加 BigInt_Functions_3とBigInt_Functions_3_2に
5倍角の公式 漸化式(プライベートモジュールBI_Fx001)追加
[2010/05/30]

 

 
Ver.1.92 Alpha Edition
(開発中版)
変 更 全関数 ユーザーフォームへdebug出力の処理を関数に変更
桁合わせ(BIKetaAwase) 若干変更
仕様変更 円周率(BIPiAMGCalc←BIPiCalc) プロシージャ名変更
円周率(BIPiList←BIPi) プロシージャ名変更
モジュール名変更 (BigInt_Definition_SWTAPI←BigInt_Sample_SWTAPI)
パブリック定数(BIIsNumericMax) モジュール移動
(BigInt_Definition_2←BigInt_Functions_1)
新規追加 円周率<Main> BIPiList追加
円周率[高野の公式] (BIPiTCalc)追加
正弦Sin<Binary Splitting法> (BISinBS,BISin_BS)追加
余弦Cos<Binary Splitting法> (BICosBS,BICos_BS)追加
正接Tan<Binary Splitting法> (BITanBS)追加
正弦Sinの逆関数<Binary Splitting法> (BIASinBS)追加
余弦Cosの逆関数<Binary Splitting法> (BIASinBS)追加
正接Tanの逆関数<Binary Splitting法> (BIAtn3,BIAtnBS,BIAtnRBS)追加
求める桁数のチェック(DigitCheck)追加
計算桁の算出(SetBigIntDigitCalculations)追加
求める桁数のチェックと計算桁の算出
(DigitCheck_And_SetBigIntDigitCalculations)追加
数値読込(Fileroad)追加
フルパスからパスを抽出(Full2Path)追加
ユーザーフォームへdebug出力関数(BI_debug1,BI_debug2,BI_debug3)の追加
修 正 逆三角関数(BIASin,BIACos,BIAtn) コメント(引数X説明)
制限緩和 三角関数 計算上限回数 パブリック定数(TrigonoLimitN:15000←1500)
逆三角関数 計算上限回数 パブリック定数(InvtrigonoLimitN:50000←5000)
円周率 計算制限回数 パブリック定数(PaiLimitN:100000←5000)
欠番 Ver.1.90-1.91    
[2010/02/14] Ver.1.89 Alpha Edition 変 更 自然対数の底のX乗(e^x) 2段にして最適化(収束を速める)ほか
自然対数(BILnX) 対数の最適化(収束を速める)
文字列の操作関数名(Left, Mid, Right)にドル記号($)を
追加 (戻り値を文字列型 (String)に)
BigInt_Functions_1_2(1?,-1?,0?)をBigInt_Functions_1に統合
BigInt_Functions_2_2(BISqr,BISqrDA,BISqrA,BISqrN2,BISqrN4,
BICub,BICubN3,BICubA,BICubDV,BICubEq3D)をBigInt_Functions_2に統合
立方根 負値に対応
新規追加 べき乗(Powers <Main>)
仕様変更 べき乗(BIPowersI) 引数debug2_削除
べき乗(BIPowers1 ←および プロシージャ名変更BIPowers)
べき乗(二進展開版,ノーマル版,指数が整数専用版) 0^0を
パブリック定数(PowersZeroFLG)で設定可能に変更
修 正 2次方程式の解 重根[D=0]時の解の計算修正
制限緩和 パブリック定数 自然対数 引数省略時の
内部計算上限回数 LogLimitN(1000000←10000)
パブリック定数 べき乗 引数省略時の
計算上限回数 PowersLimitN(1000000←10000)
追 加 BigInt_Demo 連続計算用のBeep機能
[2009/12/08] Ver.1.88 Alpha Edition 変 更 逆数(BIReciprocal) Do〜Loop内を最適化など
修 正 平方根(差分面積法,相加平均法,1/√Aのニュートン法(2次収束),
1/√Aのニュートン法(4次収束)) 次の計算桁数の設定
立方根(漸化式法(3次収束),相加平均法,差分体積法,3次方程式の解法) 
次の計算桁数の設定
[2009/12/07]
非公開
Ver.1.87 Alpha Edition 変 更 加算(BigIntAdd) 分割処理範囲を変更
(〜4〜9〜13〜27桁←〜3〜8〜12〜27桁)
減算(BigIntSub) 分割処理範囲を変更
(〜4〜9〜14〜27桁←〜4〜10〜14〜27桁)
除算(BigIntDiv) 筆算の方法(分割法)分岐条件変更
平方根(BISqrN)・立方根(BICubN) スピードアップのための処理を見直
平方根・立方根 プロシージャ名(BISqrN←BISqr,BICubN←BICub)
仕様変更 3次・2次方程式の解 引数(RealFLG)追加
仕様変更 円周率(AGM) 引数(SqrLastFLG)追加
修 正 減算(BigIntSub) 計算桁(M+1)のチェック追加
平方根(BISqrN)・立方根(BICubN) Do〜Loop内を最適化
3次方程式の解 1/3乗根をべき乗から立方根で求めるように変更
3次方程式の解 誤差補正(X^3+A=0などの場合)、計算桁(M+3)のチェック追加
3次・2次方程式の解 判別式の判定をさらに厳密化
配列データの並替(ArraySort) 変数(N)宣言・算出もれを修正
追 加 平方根 最終回計算省略機能追加
[2009/11/10] Ver.1.86 Alpha Edition 変 更 名称を「VBAで多倍長演算を行うためのライブラリ」に変更
全体 引数(求める桁数:Digit)省略時の計算桁数算出基準
正接の逆関数 XX=1判別条件の不具合(指数チェックもれ)修正
新規追加 パブリック定数(DefaultDigit:標準桁数)追加
パブリック変数(DefaultDigit2:ユーザー指定の標準桁数)追加
算術幾何平均(AGM:Arithmetic-geometric mean)追加
仕様変更 平方根・立方根 引数Nのデータ型変更 (Long←Integer)
三角関数,逆三角関数 引数Digitのデータ型変更 (Variant←Long)
三角関数,逆三角関数 引数Nのデータ型変更 (Long←Integer)
3次方程式の解、2次方程式の解 引数Digit省略時の値 (DefaultDigit←32)
クロソイド座標 引数Digit省略時の値 (DefaultDigit←32)
自然対数の底のX乗 引数Digitのデータ型変更 (Variant←Long)
べき乗(ノーマル版) 引数Nのデータ型変更 (Long←Variant)
修 正 べき乗(二進展開版,ノーマル版)Aが1(1^B=1)判別条件の
不具合(指数チェックもれ)修正
べき乗(二進展開版,ノーマル版)Bが1(A^1=A)判別条件の
不具合(指数チェックもれ)修正
べき乗(二進展開版)指数部 整数専用版で算出時の求める桁数の
設定不具合修正
最小公倍数 AA=1およびBB=1判別条件の不具合(指数チェックもれ)修正
余弦の逆関数 XX=1およびXX=-1判別条件の不具合(指数チェックもれ)修正
制限撤廃 平方根,立方根 演算上限桁数の制限撤廃
 (パブリック定数:BsqrLimitN,BcbcLimitN)
平方根,立方根 計算制限回数の制限撤廃
(以降は引数省略時の計算制限回数のしてのみ使用)
三角関数,逆三角関数 演算上限桁数の制限撤廃
 (パブリック定数:TrigonometryN)
三角関数,逆三角関数 計算制限回数の制限撤廃
(以降は引数省略時の計算制限回数のしてのみ使用)
自然対数の底のX乗(e^x) 演算上限桁数の制限撤廃 (パブリック定数:NapierN)
自然対数の底のX乗(e^x) 計算制限回数の制限撤廃
(以降は引数省略時の計算制限回数のしてのみ使用)
自然対数(BILnX,BILnX2) 演算上限桁数の制限撤廃 (パブリック定数:LogN)
自然対数(BILnX,BILnX2) 計算制限回数の制限撤廃
(以降は引数省略時の計算制限回数のしてのみ使用)
円周率(BIPi6Calc,BIPi2Calc,BIPi4Calc) 演算上限桁数の制限撤廃
 (パブリック定数:PaiLimitC)
円周率(BIPi6Calc,BIPi2Calc,BIPi4Calc) 計算制限回数の制限撤廃
(以降は引数省略時の計算制限回数のしてのみ使用)
クロソイド座標 演算上限桁数の制限撤廃 (パブリック定数:ClothoidLimitN)
クロソイド座標 計算制限回数の制限撤廃
[2009/04/09]
非公開
Ver.1.85 Alpha Edition 修 正   平方根・立方根 振動時、計算桁を増加させる処理追加など
  立方根 引数の1,-1チェック
[2009/03/04] Ver.1.84 Alpha Edition 修 正 AutoDemo 不具合(オブジェクト名変更もれ)修正
[2009/02/26] Ver.1.83 Alpha Edition 修 正 べき乗(指数が整数専用版/BIPowersI)演算可能範囲チェック不具合修正
[2009/02/24] Ver.1.821 Alpha Edition 修 正 AutoDemo 不具合(オブジェクト名変更もれ)修正
[2009/02/23] Ver.1.82 Alpha Edition 追 加 BigInt_Demo AutoDemo中断処理対応
[2009/02/21]
非公開
Ver.1.81 Alpha Edition 変 更 逆三角関数(BIASin, BIACos, Atn) 特異点(0)チェック
制限緩和 パブリック定数 平方根 上限桁数 BsqrLimitN(5000000←1000000)
パブリック定数 立方根 上限桁数 BcbcLimitN(5000000←1000000)
[2009/01/04]
非公開
Ver.1.80 Alpha Edition 新規追加 高速フーリエ変換(FFT)、配列データの並替、
複素数(加算・減算・乗算・除算・絶対値)
BigIntをFFT用の配列に、FFT用の配列をBigIntに
変 更 逆数(BIReciprocal)・平方根・立方根 漸化式がエラー(0)時の処理追加
比較(A=B) 引数(SgnFLG)の追加と符号チェック有無を追加
修 正 加算(BigIntAdd) 最後の繰上り処理と頭の0を削除の不具合
制限撤廃 円周率(AGM) 上限桁数(PaiLimitC)と制限回数(PaiLimitN_AGM)
[2008/12/10] Ver.1.73 Alpha Edition 新規追加 べき乗(指数が整数専用版/BIPowersI)
追 加 連続計算 コメント機能
全般修正 計算桁の算出で各上限桁数を考慮した処理に修正
変 更 比較(A=B, A<>B) 末尾のゼロカット処理を追加
比較(A<B, A<=B, A>B, A>=B) 除算を使用せず判定するアルゴリズムに変更
BigIntTypeを文字列に(Bigint2String) 末尾の0を削除の処理追加
円周率(BIPi) チェックサム(値の検証機能)追加
自然対数の底e(BIE) チェックサム(値の検証機能)追加
制限緩和 パブリック定数 BigIntType制限値 BigIntLimit(2147483647←1024000)
パブリック定数 BigIntType制限値 BigExpLimit(2147483647←1024000)
パブリック定数 平方根 上限桁数 BsqrLimitN(1000000←50015)
パブリック定数 立方根 上限桁数 BcbcLimitN(1000000←50015)
パブリック定数 平方根 計算制限回数 BsqrLimitC(500←100)
パブリック定数 立方根 計算制限回数 BcbcLimitC(500←100)
パブリック定数 自然対数の底e 上限桁数 NapierN(1000000←10001)
パブリック定数 自然対数 上限桁数 LogN(1000000←10000)
パブリック定数 べき乗 上限桁数 PowersN(1000000←50010)
非公開 Ver.1.72 Alpha Edition 追 加 パブリック定数(BIIsNumericMax)追加
変 更 パブリック定数(BigIntMulK_MCount, BigIntMulK_AddSubCount)の
データ型変更(Variant←Long)
エラー値かどうか(BIIsError) アルゴリズム見直し
文字列チェック(BIStringCheck) アルゴリズム見直し
桁合わせ(BIKetaAwase) 引数チェック見直し
平方根・立方根 初期処理および初期値エラー判定
オーバーフローチェック(BIOverflowErrCheck) アルゴリズム見直し
 <この見直しで指数部・整数部の連動でオーバーフローのチェックが可能となる>
桁合わせ(BIKetaAwase) 不要なゼロ削除処理の見直し
仕様変更 末尾の0を削除[BigIntType版](CutLastZero) 引数追加および
BigExpLimitの制限を無視する処理追加
[2008/11/25] Ver.1.71 Alpha Edition 新規追加 加算(BigIntAdd) <分割法 版> [元のBigIntAddをBigIntAdd2<筆算 版>に変更]
減算(BigIntSub) <分割法 版> [元のBigIntSubをBigIntSub2<筆算 版>に変更]
乗算(BigIntMulK) <Karatsuba法 版> [再帰呼出 版] 
変 更 パブリック定数名変更 (BigIntDiv2N←DivN)
BigInt_Demo フォームのデザインを変更(サイズを大きく)
非公開 Ver.1.70 Alpha Edition 修 正 円周率(BIPiCalc) 収束判定値(SQRT_SQRT_EPSILON)の算出式修正
[2008/11/06] Ver.1.692 Alpha Edition
Excel VBA 版のみ
修 正 シート"BEq3D 検証1"のリンクエラー修正
 ※実際の更新日は、2008/11/09 ですが、ワークシート内のみの(リンクエラーの)修正なので表記上はそのままとします
[2008/11/06] Ver.1.691 Alpha Edition
Excel VBA 版のみ
追 加 ユーザー関数のネストエラーの説明を追加
[2008/11/06] Ver.1.69 Alpha Edition 新規追加 符号反転(BISgnChange)
追 加 パブリック定数(BInverseLimitC)
BigInt_Demo 除算 算出法選択追加
BigInt_Demo 連続計算 繰り返し・データセット機能
平方根・立方根 初期値=解のチェック
修 正 比較(A<>B) 戻値設定
エラー値かどうか(BIIsError) エラー判定処理
変 更 符号反転(BISgnChange) 引数<ErrCheckFLG>削除
BigInt_Demo 保存用データ作成(GetSaveTxt) データ書式変更
追加変更 逆数(BIReciprocal)
 <BIInverseを削除し新規にニュートン法で算出する関数を追加>
除算を関数名変更(BigIntDiv←BigIntDiv2)し、
新規に逆数(BIReciprocal)を使用する除算(BigIntDiv)を追加
制限緩和 平方根・立方根 パブリック定数(BsqrLimitN,BcbcLimitN) 上限桁数50015に
円周率 上限桁数 パブリック定数(PaiLimitC) 10001←5001に
べき乗 上限桁数 パブリック定数(PowersN) 50010←10000に
仕様変更 三角関数 引数変換追加(演算速度をスピードアップ)
円周率(BIPi) 取得出来る桁数増加(20001←10001)
全般変更 "頭の0を削除"と"末尾の0を削除"で、
関数(CutTopZeroS, CutTopZero, CutLastZeroS, CutLastZero)を
使用する仕様に変更
変 更 その他多数
[2008/10/05] Ver.1.68 Alpha Edition 新規追加 パブリック定数(BigIntUpDate)
修 正 コメント(依存など)若干修正
変 更 連続計算機能若干変更
[2008/10/05] Ver.1.67 Alpha Edition
新規追加
サンプルプログラム(BigInt_Demo)に連続計算機能
逆三角関数(BIASin, BIACos)
クロソイド(BIClothoid/BigInt版, Clothoid/倍精度版)
指数表記変換関数(BIStr2Exp)
円周率(π/6版)
BigInt_Demoに連続計算用の簡易乱数(Randam)、
メッセージボックス(MsgBox)追加.
追 加 パブリック定数(PaiLimitC=5001, PaiLimitN=5000)
修 正 指数表記変換関数(BI2ExpN) 丸め方法の切り上げ判定
逆三角関数(Atn) 引数変換を追加し大幅に変更(演算速度をスピードアップ)
コメントなど若干修正
平方根 式[X=0.5*Xn+0.5*AA/Xn]の求める桁数を指定する仕様に変更
平方根・立方根 判定処理不具合修正
平方根・立方根 振動時は10回まで計算値を修正して計算続行する仕様に変更
平方根・立方根 計算打切り判定に「有効桁(求める桁数+判定余裕桁)で
丸めると値が一致」を追加
3次元方程式の解・2次元方程式 解の生成桁数チェック部
変 更 正接(Tan) 第2・3象限時の符号、演算結果が無限大(ゼロで除算)対応
関数名変更(BIPiCalc4←BIPiCalc2, BIPiCalc2←BIPiCalc3)
円周率(BIPiCalc4)・円周率(BIPiCalc2) 変更多数
収束
判定
方法
(三角関数,正接の逆関数,自然対数の底のX乗,
自然対数(BILnX,BILnX2),べき乗(ノーマル版),
円周率(BIPiCalc4,BIPiCalc2))
制限緩和 平方根・立方根 パブリック定数(BsqrLimitN,BcbcLimitN) 上限桁数15000に
[2008/09/16] Ver.1.66 Alpha Edition
最小公倍数 追加
BI2ExpNの指数表記をBigIntTypeに(BIExpN2BIT) 追加
文字列を BigIntType に(String2BigInt) 引数に指数表記に対応
指数表記変換関数(BI2ExpN) 切り捨て以外の丸め方法追加し引数で指定可能に対応
最大公約数 整数チェック追加
商の整数部・剰余 不具合修正(余裕桁を1→2)
加算、減算 加算←→減算間で計算処理を代行させる場合、
引数(計算桁数)指定無しのケースを考慮していなかかった不具合修正
平方根・立方根 引数が1未満 or 1E+1024以上の場合に再帰計算の仕様に変更
平方根 引数が A=1E±2N [N:整数] 場合に別処理とする仕様に変更
立方根 計算中の解(X)の"求める桁数算出式(LL0)"変更
立方根 計算中の解(X)を求める減算で"求める桁数"を省略せず指定(LL0)する式に変更
立方根 引数が A=±1E±3N [N:整数] 場合に別処理とする仕様に変更
剰余(BIMod) 引数が負値でも戻り値が正の不具合修正
三角関数(Sin,Cos,Tan) 上限桁数緩和(5000←500)、計算上限回数緩和(1500←500)
三角関数(Sin,Cos,Tan) 特異点チェック削除
三角関数(Sin,Cos,Tan) For〜Next内のD,BSin1算出時に
求める桁数を指定する仕様に変更(不具合修正とスピードアップの為)
正接の逆関数(Atn) 公式2適用時のゼロで除算チェック追加
その他若干変更
[2008/07/16] Ver.1.651 Alpha Edition
Excel VBA 版のみ
3次方程式の解 "BEq3D 検証2"
"桁数(計算桁を設定する目安に)" 数式(ユーザー関数名の変更忘れ)修正
[2008/07/11] Ver.1.65 Alpha Edition コメント修正
非公開 Ver.1.64 Alpha Edition 加算、減算 一部修正
[2008/07/10] Ver.1.63 Alpha Edition ソート(バブルソート、コムソート11) 追加
非公開 Ver.1.62 Alpha Edition コメント修正ほか
非公開 Ver.1.61 Alpha Edition パブリック変数 ErrorCheckSkipFLG (エラーチェックスキップフラグ) 追加
引数チェック追加など修正多数
コメント修正 桁合わせ 修正
関数名変更 (BIKeta←Keta),(BIKetaAwase←KetaAwase),
(BIWarnningDialog←WarnningDialog)
[2008/06/21] Ver.1.60 Alpha Edition コメント修正ほか
非公開 Ver.1.57-1.59
  Alpha Edition
立方根 プロシージャ名変更
自然対数の底のX乗 最適化版 計算部修正
テスト用プロシージャ追加修正 ほか多数
[2008/06/17] Ver.1.56 Alpha Edition コメント(依存)追加他
非公開

Ver.1.51-1.55  3次元方程式の解 新規作成
正弦(Sin)符号適用もれ修正
最大繰返し計算時の処理(Exit For)抜け修正
その他修正他
[2008/06/12] Ver.1.50 Alpha Edition AutoDemo 追加
指数表記変換関数(BI2ExpN) 追加
最小値2(BIArrayMin), 最大値2(BIArrayMax) 追加
パブリック定数 DivN 制限緩和 (50000←15000)
BigIntTypeに BigDat 追加
最大公約数 (BIGcd) 追加
[2008/06/09] Ver.1.23 Alpha Edition 理論演算子(BINot,BIAnd,BIOr,BIXor,BIEqv,BIImp)追加
[2008/06/08] Ver.1.21 Alpha Edition (未公開) べき乗のコメント修正
[2008/06/07] Ver.1.20 Alpha Edition 演算関数追加・修正など多数
正接の逆関数の引数 制限撤廃
[2008/06/01] Ver.0.70 Alpha Edition 新規公開
     
以前のバージョン
 
AutoCAD VBA 版  DownLoad(BigIA193.zip/1,492,881Byte) + Update *5
 DownLoad(BigIA192.zip/1,394,789Byte) + Update *4
 DownLoad(BigIA189.zip/1.19MB)
 DownLoad(BigIA188.zip/1.25MB) + Update *3
 DownLoad(BigIA186.zip/1.03MB) + Update *2
 DownLoad(BigIA184.zip/1.04MB) + Update *1
 DownLoad(BigIA183.zip/1.05MB)
 DownLoad(BigIA1821.zip/1.01MB)
 DownLoad(BigIA182.zip/1.03MB)
 DownLoad(BigIA173.lzh/1.02MB)
 DownLoad(BigIA171.lzh/971KB)
 DownLoad(BigIA169.lzh/920KB)
 DownLoad(BigIA168.lzh/803KB)
 DownLoad(BigIA167.lzh/800KB)
 DownLoad(BigIA166.lzh/767KB)
 DownLoad(BigIA165.lzh/630KB)
 DownLoad(BigIA163.lzh/599KB)
 DownLoad(BigIA160.lzh/566KB)
 DownLoad(BigIA156.lzh/529KB)
 DownLoad(BigIA150.lzh/471KB)
 DownLoad(BigIA123.lzh/363KB)
 DownLoad(BigIA120.lzh/348KB)
 DownLoad(BigiA070.lzh/216KB)
Excel VBA 版  DownLoad(BigIE193.zip/1,706,054Byte) + Update *5
 DownLoad(BigIE192.zip/1,683,110Byte) + Update *4
 DownLoad(BigIE189.zip/1.94MB)
 DownLoad(BigIE188.zip/1.67MB) + Update *3
 DownLoad(BigIE186.zip/1.66MB) + Update *2
 DownLoad(BigIE184.zip/1.44MB) + Update *1
 DownLoad(BigIE183.zip/1.46MB)
 DownLoad(BigIE1821.zip/1.46MB)
 DownLoad(BigIE182.zip/1.46MB)
 DownLoad(BigIE173.lzh/1.57MB)
 DownLoad(BigIE171.lzh/1.50MB)
 DownLoad(BigIE1692.lzh/1.49MB)
 DownLoad(BigIE1691.lzh/1.49MB)
 DownLoad(BigIE169.lzh/1.48MB)
 DownLoad(BigIE168.lzh/1.32MB)
 DownLoad(BigIE167.lzh/1.18MB)
 DownLoad(BigIE166.lzh/1.05MB)
 DownLoad(BigIE1651.lzh/886KB)
 DownLoad(BigIE165.lzh/896KB)
 DownLoad(BigIE163.lzh/899KB)
 DownLoad(BigIE160.lzh/820KB)
 DownLoad(BigIE156.lzh/735KB)
 DownLoad(BigIE150.lzh/765KB)
 DownLoad(BigIE123.lzh/661KB)
 DownLoad(BigIE120.lzh/613KB)
 DownLoad(BigiE070.lzh/431KB)
VBA Export Files
(bas, frm, frx)
 DownLoad(BigIF193.zip/422,327Byte) + Update *5
 DownLoad(BigIF192.zip/414,809Byte) + Update *4
 DownLoad(BigIF189.zip/372KB)
 
 Update情報 (アップ後に判明した不具合のお知らせと対策)
Update 掲載日 モジュール名 関数名 不具合の内容 対策 その他

*5

2010/08/23 BigInt_Definition_1  商の整数部(BIQuotient)
剰余(BIMod)
 (N)算出式  以下の式に書き換えて下さい
商の整数部 (BIQuotient)
N = Len(AA.BigInt) + AA.BigExp - (Len(BB.BigInt) + BB.BigExp) + 1
N = Len(AA.BigInt) + AA.BigExp - (Len(BB.BigInt) + BB.BigExp) + 2
剰余 (BIMod)
N = Len(AA.BigInt) + AA.BigExp - (Len(BB.BigInt) + BB.BigExp) + 1
N = Len(AA.BigInt) + AA.BigExp - (Len(BB.BigInt) + BB.BigExp) + 2

*4

2010/05/31 フォーム
BigInt_Demo
CalcCos_Click BICosBSの引数(FLG)の設定
※Sinの値を使用していた
以下のモジュールごと置換え
 BigInt_Demo_Update192.zip (94,713Byte)
 

*3

2009/12/13 BigInt_Functions_8 3次方程式の解
BEq3D
2重根と(それとは異なる)
実数解1つ時の
T(0 or π)の設定
以下のモジュールに置換え
 BigInt_Functions_8.zip (7.39kb)
 
再対策版[2009/12/19]
 BigInt_Functions_8_2.zip (7.45kb)
下記のモジュールで
置き換えて下さい
その他の
修正内容を含む
2010/01/26 BigInt_Functions_8 2次方程式の解
BEq2D
重根[D=0]時の解の計算  BigInt_Functions_8_3.zip (7.5kb) 3次方程式の解
(BEq3D)の
修正内容を含む

*2

2009/11/18 BigInt_Definition_2 Bigint2String 引数SgnFLGの処理 以下のプロシージャ
(関数部分のみ)
に置換え
 Bigint2String.zip (1.42kb)
 

*1

2009/04/10 BigInt_Functions_2 立方根 (BICub)  引数の1,-1チェック 以下のモジュールに置換え
 BigInt_Functions_2.zip (12.1kb)
その他の
修正内容を含む
 
 
   
謝辞
このプログラムの作成にあたり、下記のソフトウェア(ソース)、
および、高速フーリエ変換 (FFT:Fast Fourier Transform)の作成に
”FFT (高速フーリエ・コサイン・サイン変換) の概略と設計法”を参考にさせていただきました。
ここで、その作者の方に厚くお礼を申し上げます。
 
<利用ソフト(ソース)>
大浦拓哉さんが以下のサイトで紹介されている『FFTとAGMによる円周率計算プログラム』
URL : http://www.kurims.kyoto-u.ac.jp/~ooura/pi_fft-j.html
  
<参考>
大浦拓哉さんが以下のサイトで紹介されている『FFT (高速フーリエ・コサイン・サイン変換) の概略と設計法』の
「1.2 Cooley-Tukey 型 FFT」の基数 2 の周波数間引き FFT (修正版)
URL : http://www.kurims.kyoto-u.ac.jp/~ooura/fftman/index.html
URL : http://www.kurims.kyoto-u.ac.jp/~ooura/fftman/ftmn1_2.html