This is array03.m in view mode; [Download] [Up]
/* array01 - simple tests for MathArray from libMathArray Copyright (C) 1995, Adam Fedor */ #ifdef NEXT_FOUNDATION #import <foundation/NSValue.h> #import <foundation/NSRange.h> #include <foundation/NSAutoreleasePool.h> #else #include <Foundation/NSValue.h> #include <Foundation/NSRange.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" id <NSNumber,ComplexNumber> array_func(id <NSNumber,ComplexNumber>number, unsigned *index, void *info) { return [MANumber numberWithInt:index[0]]; } int main() { MathArray *array; MathArray *subarray; NSRange range; unsigned index[2]; int i; NSAutoreleasePool* pool = [NSAutoreleasePool new]; [MaskedException bodysnatchNSException]; [MaskedException setMaskForAllExceptions:AbortException]; printf("Create 10 point vector...\n"); array = [MathArray maWithVector:10 objCType:@encode(int)]; printf("Perform user function...\n"); [array maPerformFunction:array_func userInfo:NULL]; printf("Extract subarray...\n"); range.location = 3; range.length = 4; subarray = [array arraySubrange:&range]; printf("Subarray has total %d (should be 18)\n", [[subarray maTotal] intValue]); printf("Insert subarray... (Should be 0 1 2 3 4 3 4 5 6 9)\n"); index[0] = 5; [array setArray:subarray atIndex:index]; for (i=0; i < [[array mathData] count]; i++) printf("%d ", [(NSNumber *)[[array mathData] valueAtIndex:i] intValue]); printf("\n"); printf("Create 20X10 matrix...\n"); array = [MathArray maMatrixWithCols:10 rows:20 objCType:NULL]; printf("Perform user function...\n"); [array maPerformFunction:array_func userInfo:NULL]; index[0] = 5; index[1] = 5; printf("Insert subarray...\n"); [array setArray:subarray atIndex:index]; printf("Array has total %d (should be 1898)\n", [[array maTotal] intValue]); printf("Square array (by matrix multiplication)...\n"); [array maMatrixMultiply:[MA_TEMPORARY(array) maTranspose]]; printf("Array has total %d (should be 360246)\n", [[array maTotal] intValue]); printf("Where array is greater than 2470...\n"); [[array maGreater:[NSNumber numberWithInt:2470]] maWhere]; printf("Array has size %u, total %d (should be 26, 9324)\n", [array sizes][0], [[array maTotal] intValue]); printf("Random array...\n"); [array maRandomNormalMean: 0 deviation: 4]; for (i=0; i < [[array mathData] count]; i++) printf("%d ", [(NSNumber *)[[array mathData] valueAtIndex:i] intValue]); printf("\n"); [pool release]; return 0; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.