iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど
Accelerate Frameworkで行列計算を行うのはBLASというAPIを利用することになるのだが、これが古くからの伝統にのっとったもので使いにくい。そこで、Cocoaで扱いやすくするためにla_object_t という型が用意されている。今回はこれの使い方を試してみるのと、まずは基本的な演算に挑戦する。
XとYという3次元ベクトルを用意する。まずは値のバッファ。
let vecXBuf: [Double] = [20.0, 30.0, 40.0]
let vecYBuf: [Double] = [15.0, 10.0, 5.0]
これを3行1列の行列として生成する。
let vecX = la_matrix_from_double_buffer(vecXBuf, 3, 1, 1,la_hint_t(LA_NO_HINT), la_attribute_t(LA_DEFAULT_ATTRIBUTES))
let vecY = la_matrix_from_double_buffer(vecYBuf, 3, 1, 1,la_hint_t(LA_NO_HINT), la_attribute_t(LA_DEFAULT_ATTRIBUTES))
これを足してみる。
et vecZ = la_sum(vecX, vecY)
print(vecZ.matrixDescription)
以下の結果となった。
35.0
40.0
45.0