ホーム ] 多倍長語の構造 ] プログラミング仕様 ] インストール ] ユーティリティ ] 数学定数システム ] 四則演算 ] 数学関数 ]

上へ
CompactLong
CompactPrecision
CompactFFT

プログラミング仕様

CompactLong

最終更新日:2007/04/26 新規

●概要

 多倍長語のクラスで、メソッド、プロパティを持つ。 

●New

 以下のNewにてインスタンスを生成する。

  • Sub New(ByVal Value As SByte)
  • Sub New(ByVal Value As Byte)
  • Sub New(ByVal Value As Short)
  • Sub New(ByVal Value As UShort)
  • Sub New(ByVal Value As Integer)
  • Sub New(ByVal Value As UInteger)
  • Sub New(ByVal Value As Long)
  • Sub New(ByVal Value As ULong)
  • Sub New(ByVal Value As Decimal)
  • Sub New(ByVal Value As Double)
  • Sub New(ByVal Value As String)
  • Sub New(ByVal Value As StringBuilder)
     String/StringBuilder では、任意のリテラル数値(整数、固定小数点、指数表示など)が可能。最大、4096桁まで記述できる。
     
  • Sub New(ByRef Value As CompactLong)
  • Sub New(ByRef Value As Object)
  • Sub New(ByVal Value As Long, ByVal Exp As Long)
     Value * 10Exp なる数値が生成される。

●プロパティ

  • ReadOnly Property Exponent() As Long
     指数部を参照する。
     
  • ReadOnly Property ArraySize() As Integer
     512要素のInteger配列で、頭から有効な値が入っている要素数を参照する。

●メソッド

○値設定

 現在のインスタンスに新しい値を設定する。

  • Sub SetValue(ByRef Source As CompactLong)
  • Sub SetValue(ByRef Source As Long)
  • Sub SetValue(ByRef Source As Integer)
  • Sub SetValue(ByRef Source As Double)
  • Sub SetValue(ByRef Source As String)
  • Sub SetValue(ByVal Sign As CompactSign, ByVal Exp As Long, ByRef SourceArray() As Integer)
     SourceArrayのInteger配列を値とする。SourceArrayはインスタンスにコピーされる。512より大きくても小さくても、512になる。正規化はされているものとする。

○現在値確認

  • Function IsPositive() As Boolean
  • Function IsNegative() As Boolean
  • Function IsZero() As Boolean
  • Function IsAbsOne() As Boolean
     絶対値が、10n かどうか。

○新しい値を生成

  • Function Clone() As CompactLong
     現在のインスタンスのコピー。
     
  • Function PartialValue(ByVal Start As Integer, ByVal Size As Integer) As CompactLong
     仮数部配列のStart番目から、Size要素で新しい値を生成する。指数部は、-Start*8 が加算される。
     
  • Function IntegerPart() As CompactLong
     整数部分で新しい値とする。
     
  • Function FractionPart() As CompactLong
     小数部分で新しい値とする。
     
  • Function Abs() As CompactLong
     現在値の絶対値を新しい値とする。
     
  • Function ToLong() As Long
     整数Longにできる場合はLongが生成される。
     
  • Function CanBeLong(ByRef L As Long) As Boolean
     整数Longにできる場合はLongがLに設定され、Trueが返る。そうでない場合はFalseとなる。
     
  • Function ToDouble() As Double
     実数Doubleにできる場合はDoubleが生成される。
     
  • Function CanBeDouble(ByRef D As Double) As Boolean
     実数Doubleにできる場合はDoubleがDに設定され、Trueが返る。そうでない場合はFalseとなる。

○入出力

  • Function Description() As String
     内容を物理ダンプする。仮数部は10進表示される。下図にダンプした例を示す。


Description例
 

  • Function ToNumString(ByVal Format As NumFormat, Optional ByVal LimitLength As Integer = 0) As String
     値をFormat に従い固定小数点形式または指数形式の文字列で出力する。
     固定小数点の場合は、有効な全桁数が表示されるが、指数が±2046の範囲外の場合は、指数表示になる。
     指数表示の場合、表示仮数部の桁数をLimitLengthで制限できる。

    下図は一例である。


ToNumString例(初めが、固定小数点表示、最後の行が指数表示)
 

  • Sub StoreValue(ByVal FP As String)
  • Sub LoadValue(ByVal FP As String)
     CompactLongのバイナリ形式ファイルの入出力。FP は、絶対パスを伴った任意のファイル名。