LoginSignup
0
1

More than 5 years have passed since last update.

[swift][線形代数]3次元ベクトルの加算

Posted at

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 

関連情報
[iOS 8] Accelerate.Frameworkに加わった新たな線形代数ライブラリ

BLAS

Cocoa Advent Calendar 2017

Cocoa勉強会 BUKURO.swift (connpass)

Cocoa勉強会 BUKURO.swift (ATND)

Cocoa勉強会 BUKURO.swift (Peatix)

【Cocoa練習帳】
http://www.bitz.co.jp/weblog/

http://ameblo.jp/bitz/(ミラー・サイト)

Qiita

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1