public static unsafe void Add( [NotNull] float[,] data1, [NotNull] float[,] data2 )
{
if ( data1 == null )
throw new ArgumentNullException( "data1" );
if ( data2 == null )
throw new ArgumentNullException( "data2" );
if ( data1.GetLength( 0 ) != data2.GetLength( 0 ) ||
data1.GetLength( 1 ) != data2.GetLength( 1 ) ) {
throw new ArgumentException( "data1 and data2 dimension mismatch" );
}
fixed ( float* ptr1 = data1, ptr2 = data2 ) {
for ( int i = 0; i < data1.Length; i++ ) {
ptr1[i] += ptr2[i];
}
}
}