 protocol Matrix {
+    var count: Int { get }
     var m : [Float] { get set }
     subscript( row: Int, col: Int ) -> Float { get set }
 }


    return Mat<C,R>( r: mat.rows, c: mat.cols, m: m )
}


        set( newValue ) {
            m[ cols * row + col ] = newValue
        }
    }
    subscript( i: Int ) -> Float {
        get {
            return m[ i ]
        }

        set( newValue ) {
            m[ i ] = newValue
        }
    }
    init( m:[Float] ) {
