예제 #1
0
         // Of course this doesn't work, but maybe you can see the effect here.
         // when the += is automimplemented from the definition above I have to create another large
         // object which causes a loss of memory and also takes more time because of the operation -> altgough its
         // simple in the example, but in reality it's much more complex.
         public static MappableObject operator +=(MappableObject A, float B)
         {
             // Of course we have to make sure that all dimensions are correct.
 
             MappableObject result = new MappableObject(Path.GetTempFileName(), A.Blocks, A.BlockSize);
 
             for (int i = 0; i < Blocks; i++)
             {
                 float[] dataA = A.GetBlock(i);
 
                 for (int j = 0; j < BlockSize; j++)
                 {
                     A[j]+= + B;
                 }
 
                 result.SetBlock(i, A);
             }
         }
예제 #2
0
         // For adding two MappableObjects
         public static MappableObject operator +(MappableObject A, Mappableobject B)
         {
             // Of course we have to make sure that all dimensions are correct.
 
             MappableObject result = new MappableObject(Path.GetTempFileName(), A.Blocks, A.BlockSize);
 
             for (int i = 0; i < Blocks; i++)
             {
                 float[] dataA = A.GetBlock(i);
                 float[] dataB = B.GetBlock(i);
 
                 float[] C = new float[dataA.Length];
 
                 for (int j = 0; j < BlockSize; j++)
                 {
                     C[j] = A[j] + B[j];
                 }
 
                 result.SetBlock(i, C);
             }
         }