Added `static func eye(rows:columns:)` & `static func identity(size:)` to `Matrix<Scalar>`

This commit is contained in:
Vincent Esche 2019-08-11 16:17:04 +02:00
parent 805c28d844
commit 1d6a28ea7a
1 changed files with 8 additions and 0 deletions

View File

@ -63,6 +63,14 @@ public struct Matrix<Scalar> where Scalar: FloatingPoint, Scalar: ExpressibleByF
self.grid = grid
}
public static func identity(size: Int) -> Matrix<Scalar> {
return self.diagonal(rows: size, columns: size, repeatedValue: 1.0)
}
public static func eye(rows: Int, columns: Int) -> Matrix<Scalar> {
return self.diagonal(rows: rows, columns: columns, repeatedValue: 1.0)
}
public static func diagonal(rows: Int, columns: Int, repeatedValue: Scalar) -> Matrix<Scalar> {
let count = Swift.min(rows, columns)
let scalars = Swift.repeatElement(repeatedValue, count: count)