This is array02.m in view mode; [Download] [Up]
/* array02 - tests for MathArray from libMathArray Copyright (C) 1995, Adam Fedor */ #ifdef NEXT_FOUNDATION #include <foundation/NSValue.h> #include <foundation/NSAutoreleasePool.h> #else #include <Foundation/NSValue.h> #include <Foundation/NSAutoreleasePool.h> #endif #include <stdio.h> #include <math.h> #include "MathArray/MathArray.h" #include "MathArray/MaskedException.h" #include "MathArray/MAValue.h" #include "MathArray/MAValueData.h" /* Replace value by the exponent of it's index */ id <NSNumber,ComplexNumber> exp_array(id <NSNumber,ComplexNumber>number, unsigned *index, void *info) { return [MANumber numberWithDouble:index[0]*index[1]]; } int main() { MathArray *array; unsigned index[2]; double *data; NSAutoreleasePool* pool = [NSAutoreleasePool new]; [MaskedException bodysnatchNSException]; [MaskedException setMaskForAllExceptions:AbortException]; /* Matrices */ printf("Create 64X64 matrix...\n"); array = [MathArray maMatrixWithCols:64 rows:64 objCType:NULL]; printf("Perform user function...\n"); [array maPerformFunction:exp_array userInfo:NULL]; printf("Perform fft with origin in center...\n"); index[0] = 32; index[1] = 32; data = [[array mathData] mutableBytes]; [array maShift:index]; [array maFFt:-1]; [array maShift:index]; data = [[array mathData] mutableBytes]; index[0] = 32; index[1] = 32; printf("Value at (32,32) is %g (should be 992.250)\n", [[array arrayValueAtIndex:index] doubleValue]); printf("Total is %g (should be 1024.00)\n", [[array maTotal] doubleValue]); [pool release]; return 0; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.