ベクトルと行列

7次元以内の行列が許可されている。 1次元の行列は、ベクトルと呼ばれる。 ベクトルとリストは、列としてグループ化される。 もし、行列の要素がいろんな型であったとき、その行列は一般化されていると言う。 もし、行列がfill-pointerを持ってなく、他の行列で置き換えられなく、 拡張不可能であるなら、その行列は簡略化されたと言う。

全ての行列要素は、arefにより取り出すことができ、arefを用いてsetf により設定することができる。 しかし、一次元ベクトルのために簡単で高速なアクセス関数がある。 svrefは一次元一般ベクトル、charscharは 一次元文字ベクトル(文字列)、bitsbitは 一次元ビットベクトルのための高速関数である。 これらの関数はコンパイルされたとき、 アクセスはin-lineを拡張し、型チェックと境界チェックなしに実行される。

ベクトルもまたオブジェクトであるため、 別のベクトルクラスを派生させることができる。 5種類の内部ベクトルクラスがある。 vector, string, float-vector, integer-vectorbit-vectorである。 ベクトルの作成を容易にするために、make-array関数がある。 要素の型は、:integer, :bit, :character, :float, :foreign かあるいはユーザーが定義したベクトルクラスの内の一つでなければならない。 :initial-element:initial-contentsのキーワード引数は、 行列の初期値を設定するために役に立つ。



array-rank-limit [定数]

7。行列の最大次元を示す。


array-dimension-limit [定数]
#x1fffffff。各次元の最大要素数を示す。 論理的な数であって、システムの物理メモリあるいは仮想メモリの大きさによって 制限される。


vectorp object [関数]

行列は1次元であってもベクトルではない。 objectvector, integer-vector, float-vector, string, bit-vector あるいはユーザーで定義したベクトルならTを返す。


vector &rest elements [関数]
elementsからなる一次元ベクトルを作る。



\begin{emtabbing}
{\bf make-array}
\it
dims \&key \= (:element-type vector) \\lq  ...
... \\
\> (:displaced-index-offset 0) \\
\> (:adjustable nil)
\rm
\end{emtabbing}

ベクトルか行列を作る。 dimsは、整数かリストである。 もしdimsが整数なら、一次元ベクトルが作られる。


svref vector pos [関数]

vectorpos番目の要素を返す。 vectorは、一次元一般ベクトルでなければならない。


aref vector &rest (indices) [関数]

vectorindicesによってインデックスされる要素を返す。 indicesは、整数であり、vectorの次元の数だけ指定する。 arefは、非効率的である。なぜなら、vectorの型に従うように 変更する必要があるためである。コンパイルコードの速度を改善する ため、できるだけ型の宣言を与えるべきである。


vector-push val array [関数]

arrayのfill-pointer番目のスロットにvalを保管する。 arrayは、fill-pointerを持っていなければならない。 valが保管された後、 fill-pointerは、次の位置にポイントを1つ進められる。 もし、行列の境界よりも大きくなったとき、エラーが報告される。


vector-push-extend val array [関数]

arrayのfill-pointerが最後に到達したとき、自動的にarrayのサイズが 拡張されることを除いては、vector-pushと同じである。


arrayp obj [関数]

もしobjが行列またはベクトルのインスタンスであるならTを返す。


array-total-size array [関数]

arrayの要素数の合計を返す。



fill-pointer array [関数]
arrayのfill-pointerを返す。 file-pointerを持っていなければNILを返す。


array-rank array [関数]
arrayの次元数を返す。


array-dimensions array [関数]
arrayの各次元の要素数をリストで返す。


array-dimension array axis [関数]

array-dimensionは、arrayaxis 番目の次元を返す。axisはゼロから始まる。


bit bitvec index [関数]

bitvecindex番目の要素を返す。 ビットベクトルの要素を変更するには、setfbitを使用すること。


bit-and bits1 bits2 &optional result [関数]


bit-ior bits1 bits2 &optional result [関数]


bit-xor bits1 bits2 &optional result [関数]


bit-eqv bits1 bits2 &optional result [関数]


bit-nand bits1 bits2 &optional result [関数]


bit-nor bits1 bits2 &optional result [関数]


bit-not bits1 &optional result [関数]
同じ長さのbits1bits2というビットベクトルにおいて、 それらのand, inclusive-or, exclusive-or, 等価, not-and, not-orとnotがそれぞれ返される。


2016-04-05