primitiveSum(void) { // FloatArrayPlugin>>#primitiveSum sqInt i; sqInt length; sqInt rcvr; float *rcvrPtr; double sum; rcvr = stackObjectValue(0); if (failed()) { return null; } success(isWords(rcvr)); if (failed()) { return null; } length = stSizeOf(rcvr); rcvrPtr = ((float *) (firstIndexableField(rcvr))); sum = 0.0; for (i = 0; i <= (length - 1); i += 1) { sum += ((double) (rcvrPtr[i])); } popthenPush(1, floatObjectOf(sum)); }
primitiveLength(void) { // FloatArrayPlugin>>#primitiveLength sqInt i; sqInt length; sqInt rcvr; float *rcvrPtr; double result; rcvr = stackObjectValue(0); if (failed()) { return null; } success(isWords(rcvr)); if (failed()) { return null; } length = stSizeOf(rcvr); success(1); rcvrPtr = ((float *) (firstIndexableField(rcvr))); result = 0.0; for (i = 0; i <= (length - 1); i += 1) { result += (((double) (rcvrPtr[i]))) * (((double) (rcvrPtr[i]))); } result = sqrt(result); popthenPush(1, floatObjectOf(result)); }
primitiveSoundGetVolume(void) { // SoundPlugin>>#primitiveSoundGetVolume double left; sqInt results; double right; left = 0; right = 0; snd_Volume((double *) &left,(double *) &right); pushRemappableOop(floatObjectOf(right)); pushRemappableOop(floatObjectOf(left)); pushRemappableOop(instantiateClassindexableSize(classArray(), 2)); results = popRemappableOop(); storePointerofObjectwithValue(0, results, popRemappableOop()); storePointerofObjectwithValue(1, results, popRemappableOop()); if (failed()) { return null; } popthenPush(1, results); return null; }
primitiveSoundGetRecordingSampleRate(void) { // SoundPlugin>>#primitiveSoundGetRecordingSampleRate double rate; sqInt _return_value; /* fail if not recording */ rate = snd_GetRecordingSampleRate(); _return_value = floatObjectOf(rate); if (failed()) { return null; } popthenPush(1, _return_value); return null; }
primitiveSum(void) { sqInt i; sqInt length; sqInt rcvr; float *rcvrPtr; double sum; rcvr = stackValue(0); if (!(isWords(rcvr))) { return primitiveFail(); } length = stSizeOf(rcvr); rcvrPtr = ((float *) (firstIndexableField(rcvr))); sum = 0.0; for (i = 0; i < length; i += 1) { sum += ((double) (rcvrPtr[i])); } popthenPush(1, floatObjectOf(sum)); return 0; }
primitiveLength(void) { sqInt i; double len; sqInt length; sqInt rcvr; float *rcvrPtr; rcvr = stackValue(0); if (!(isWords(rcvr))) { primitiveFailFor(PrimErrBadReceiver); } length = stSizeOf(rcvr); rcvrPtr = ((float *) (firstIndexableField(rcvr))); len = 0.0; for (i = 0; i < length; i += 1) { len += (((double) (rcvrPtr[i]))) * (((double) (rcvrPtr[i]))); } if (!(len > 0.0)) { primitiveFailFor(PrimErrBadReceiver); } popthenPush(1, floatObjectOf(sqrt(len))); return 0; }