carbon.linear

このモジュールは、式テンプレートベースの試験的な行列演算モジュールです。

Members

Enums

ETOSpec
enum ETOSpec

式テンプレート演算子の種類

Major
enum Major

行列の格納方式

Functions

cartesian
auto cartesian(V1 vec1, V2 vec2)

直積

columnVectors
auto columnVectors(A mat)

行ベクトルのランダムアクセスレンジ

congeal
auto congeal(A mat)
auto congeal(auto ref A mat, size_t r, size_t c)

InferableMatrixをある大きさの行列へ固定します。

congeal
auto congeal(auto ref A mat)

DynamicMatrixをある大きさへ固定します。

cross
auto cross(V1 vec1, V2 vec2)

ベクトル同士のクロス積

hermitian
auto hermitian(A mat)

エルミート行列を返します

matrix
auto matrix(S sizes)
matrixExpression
auto matrixExpression(auto ref A a, auto ref B b)

式テンプレートでの、式を表します

norm
auto norm(V v)

ベクトルのノルムを計算します

permutation
auto permutation(const size_t[] pos)

置換行列を作ります

pluDecomposeInPlace
PLU!(A) pluDecomposeInPlace(A m)

In-Placeで、行列をLU分解します。

rowVectors
auto rowVectors(A mat)

行ベクトルのランダムアクセスレンジ

sub
auto sub(A mat)

部分行列を返します

swizzle
auto swizzle(A mat)

swizzle : glm参照

toFlatten
auto toFlatten(A mat)

行列をレンジにします

toMatrix
auto toMatrix(R range)

レンジから行列を作ります。

toRange
auto toRange(A mat)
trace
ElementType!A trace(A mat)

行列の跡(trace)を返します。正方行列についてのみ定義されます

Manifest constants

defaultMajor
enum defaultMajor;

デフォルトでの行列の格納方式は「行優先」です。

Properties

identity
auto identity [@property getter]

単位行列

ones
auto ones [@property getter]

全要素が1な行列を返します。

transpose
auto transpose [@property getter]

転置行列を返します。

Structs

DMatrix
struct DMatrix(T, Msize_t rs = dynamic, Msize_t cs = dynamic, Major mjr = Major.row)

内部で2次元配列を持つ行列です

InferredResult
struct InferredResult

大きさが推論される行列が、推論結果を返す際の結果の型です。

MatrixExpression
struct MatrixExpression(Lhs, string s, Rhs)

式テンプレートでの、式を表します

PLU
struct PLU(M)
PMatrix
struct PMatrix(M)

ポインタを管理します

SMatrix
struct SMatrix(T, Msize_t rs = 0, Msize_t cs = 0, Major mjr = Major.row)

要素がメモリ上に連続して存在するような行列

Templates

ETOperatorSpec
template ETOperatorSpec(A, string op, B)

式テンプレートでの演算子の種類を返します

ElementType
template ElementType(A)

行列型の要素の型を取得します

ExpressionOperators
template ExpressionOperators(size_t spec, size_t rs, size_t cs)
ExpressionOperatorsInferable
template ExpressionOperatorsInferable(size_t spec)

specに示された演算子をオーバーロードします。specはETOSpecで指定する必要があります。

SCVector
template SCVector(T, Msize_t size)
SRVector
template SRVector(T, Msize_t size)
SVector
template SVector(T, Msize_t size)

要素がメモリ上に連続して存在するような行列

defaultExprOps
template defaultExprOps(bool isInferable = false)

全ての演算子をオーバーロードします。

hasAssignableElements
template hasAssignableElements(A)

A型の行列の要素にElementType!A型の値が代入可能かどうかをチェックします。

hasLvalueElements
template hasLvalueElements(A)

その行列の要素がstd.algorithm.swapを呼べるかどうかをチェックします

isValidOperator
template isValidOperator(L, string op, R)

正しい演算かどうか判定します

Variables

hasView
enum bool hasView(T);

行列やベクトルのビューを取得します。

isAbstractMatrix
enum bool isAbstractMatrix(T);

大きさが推論される行列かどうか判定します

isNotVectorOrMatrix
enum bool isNotVectorOrMatrix(T);

行列型でも、ベクトル型でもないような型

isVector
enum bool isVector(T);

ベクトル型かどうか判定します

Meta