Skip to content

Commit

Permalink
Improve safety of constants
Browse files Browse the repository at this point in the history
  • Loading branch information
BrettThePark committed Jan 3, 2019
1 parent 6631005 commit 7042495
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions KalmanFilter/Matrix.swift
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,11 @@ extension Matrix: KalmanInput {
*/
public var transposed: Matrix {
var resultMatrix = Matrix(rows: columns, columns: rows)
let columnLength = resultMatrix.columns
let rowLength = resultMatrix.rows
grid.withUnsafeBufferPointer { xp in
resultMatrix.grid.withUnsafeMutableBufferPointer { rp in
vDSP_mtransD(xp.baseAddress!, 1, rp.baseAddress!, 1, vDSP_Length(resultMatrix.rows), vDSP_Length(resultMatrix.columns))
vDSP_mtransD(xp.baseAddress!, 1, rp.baseAddress!, 1, vDSP_Length(rowLength), vDSP_Length(columnLength))
}
}
return resultMatrix
Expand Down Expand Up @@ -292,11 +294,11 @@ public func * (lhs: Matrix, rhs: Matrix) -> Matrix {
let btrans = CblasNoTrans
let α = 1.0
let β = 1.0

let resultColumns = resultMatrix.columns
lhs.grid.withUnsafeBufferPointer { pa in
rhs.grid.withUnsafeBufferPointer { pb in
resultMatrix.grid.withUnsafeMutableBufferPointer { pc in
cblas_dgemm(order, atrans, btrans, Int32(lhs.rows), Int32(rhs.columns), Int32(lhs.columns), α, pa.baseAddress!, Int32(lhs.columns), pb.baseAddress!, Int32(rhs.columns), β, pc.baseAddress!, Int32(resultMatrix.columns))
cblas_dgemm(order, atrans, btrans, Int32(lhs.rows), Int32(rhs.columns), Int32(lhs.columns), α, pa.baseAddress!, Int32(lhs.columns), pb.baseAddress!, Int32(rhs.columns), β, pc.baseAddress!, Int32(resultColumns))
}
}
}
Expand Down

0 comments on commit 7042495

Please sign in to comment.