diff -r 47985f127034 -r a3224998ea6c FloatArray.st --- a/FloatArray.st Tue Dec 01 23:08:29 2009 +0100 +++ b/FloatArray.st Tue Dec 01 23:11:19 2009 +0100 @@ -64,30 +64,6 @@ " ! -*= anObject - "multiply the argument into the receiver (destructive). - The argument may either be a scalar or another vector" - - ^ anObject isNumber - ifTrue:[self primMulScalar: anObject asFloat] - ifFalse:[self primMulArray: anObject] - - " - |f| - - f := #(1 2 3 4) asFloatArray. - f *= 3. - f - " - " - |f| - - f := #(1 2 3 4) asFloatArray. - f *= #(1 2 3 4) asFloatArray. - f - " -! - + anObject "return the sum of the receiver and the argument. The argument may either be a scalar or another vector" @@ -100,30 +76,6 @@ " ! -+= anObject - "add the argument into the receiver (destructive). - The argument may either be a scalar or another vector" - - ^ anObject isNumber - ifTrue:[self primAddScalar: anObject asFloat] - ifFalse:[self primAddArray: anObject] - - " - |f| - - f := #(1 2 3 4) asFloatArray. - f += 3. - f - " - " - |f| - - f := #(1 2 3 4) asFloatArray. - f += #(1 2 3 4) asFloatArray. - f - " -! - - anObject "return the difference of the receiver and the argument. The argument may either be a scalar or another vector" @@ -138,32 +90,6 @@ "Created: / 30-05-2007 / 17:41:46 / cg" ! --= anObject - "subtract the argument from the receiver (destructive). - The argument may either be a scalar or another vector" - - ^ anObject isNumber - ifTrue:[self primSubtractScalar: anObject asFloat] - ifFalse:[self primSubtractArray: anObject] - - " - |f| - - f := #(1 2 3 4) asFloatArray. - f -= 3. - f - " - " - |f| - - f := #(1 2 3 4) asFloatArray. - f += #(1 2 3 4) asFloatArray. - f - " - - "Created: / 30-05-2007 / 17:42:13 / cg" -! - / anObject "return the division of the receiver and the argument. The argument may either be a scalar or another vector" @@ -178,17 +104,6 @@ "Created: / 30-05-2007 / 17:46:05 / cg" ! -/= anObject - "divide the argument into the receiver (destructive). - The argument may either be a scalar or another vector" - - ^ anObject isNumber - ifTrue:[self primDivScalar: anObject asFloat] - ifFalse:[self primDivArray: anObject] - - "Modified: / 30-05-2007 / 17:45:46 / cg" -! - abs ^ self clone primAbs @@ -581,6 +496,93 @@ "Created: / 30-05-2007 / 17:43:06 / cg" ! ! +!FloatArray methodsFor:'arithmetic destructive'! + +*= anObject + "multiply the argument into the receiver (destructive). + The argument may either be a scalar or another vector" + + ^ anObject isNumber + ifTrue:[self primMulScalar: anObject asFloat] + ifFalse:[self primMulArray: anObject] + + " + |f| + + f := #(1 2 3 4) asFloatArray. + f *= 3. + f + " + " + |f| + + f := #(1 2 3 4) asFloatArray. + f *= #(1 2 3 4) asFloatArray. + f + " +! + ++= anObject + "add the argument into the receiver (destructive). + The argument may either be a scalar or another vector" + + ^ anObject isNumber + ifTrue:[self primAddScalar: anObject asFloat] + ifFalse:[self primAddArray: anObject] + + " + |f| + + f := #(1 2 3 4) asFloatArray. + f += 3. + f + " + " + |f| + + f := #(1 2 3 4) asFloatArray. + f += #(1 2 3 4) asFloatArray. + f + " +! + +-= anObject + "subtract the argument from the receiver (destructive). + The argument may either be a scalar or another vector" + + ^ anObject isNumber + ifTrue:[self primSubtractScalar: anObject asFloat] + ifFalse:[self primSubtractArray: anObject] + + " + |f| + + f := #(1 2 3 4) asFloatArray. + f -= 3. + f + " + " + |f| + + f := #(1 2 3 4) asFloatArray. + f += #(1 2 3 4) asFloatArray. + f + " + + "Created: / 30-05-2007 / 17:42:13 / cg" +! + +/= anObject + "divide the argument into the receiver (destructive). + The argument may either be a scalar or another vector" + + ^ anObject isNumber + ifTrue:[self primDivScalar: anObject asFloat] + ifFalse:[self primDivArray: anObject] + + "Modified: / 30-05-2007 / 17:45:46 / cg" +! ! + !FloatArray methodsFor:'copying'! clone @@ -697,6 +699,8 @@ " ! ! + + !FloatArray methodsFor:'queries'! absMax @@ -751,8 +755,8 @@ ! length - "Return the length of the receiver - (that is the length of teh vector from 0.0 @ 0.0 @ ... @ 0.0 + "Return the length of the receiver interpreted as vector + (that is the length of the vector from 0.0 @ 0.0 @ ... @ 0.0 to the point in the n-dimensional space represented by the receiver)" ^ self squaredLength sqrt @@ -929,8 +933,12 @@ " ! +numFloats + ^ self size +! + squaredLength - "Return the squared length of the receiver" + "Return the squared length of the receiver interpreted as vector" ^ self dot: self ! ! @@ -986,5 +994,9 @@ !FloatArray class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/FloatArray.st,v 1.25 2008-10-14 08:01:14 cg Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/FloatArray.st,v 1.26 2009-12-01 22:11:19 cg Exp $' +! + +version_CVS + ^ '$Header: /cvs/stx/stx/libbasic/FloatArray.st,v 1.26 2009-12-01 22:11:19 cg Exp $' ! !