"norm" doesn't need to be generic, "norm-sq sqrt" always works

db4
Joe Groff 2009-11-26 11:15:35 -08:00
parent 7da80f65e7
commit 0795c60b83
3 changed files with 4 additions and 7 deletions

View File

@ -214,8 +214,7 @@ M: A v-n A-with v- ; inline
M: A v*n A-with v* ; inline
M: A v/n A-with v/ ; inline
M: A norm-sq dup v. assert-positive ; inline
M: A norm norm-sq sqrt ; inline
M: A distance v- norm ; inline
M: A distance v- norm ; inline
M: A >pprint-sequence ;
M: A pprint* pprint-object ;

View File

@ -199,8 +199,7 @@ M: object v. [ conjugate * ] [ + ] 2map-reduce ;
GENERIC: norm-sq ( v -- x )
M: object norm-sq [ absq ] [ + ] map-reduce ;
GENERIC: norm ( v -- x )
M: object norm norm-sq sqrt ;
: norm ( v -- x ) norm-sq sqrt ; inline
: normalize ( u -- v ) dup norm v/n ; inline
@ -240,7 +239,7 @@ PRIVATE>
HINTS: M\ object vneg { array } ;
HINTS: M\ object norm-sq { array } ;
HINTS: M\ object norm { array } ;
HINTS: norm { array } ;
HINTS: M\ object distance { array array } ;
HINTS: M\ object n*v { object array } ;

View File

@ -106,8 +106,7 @@ M: cord v-n '[ _ v-n ] cord-map ; inline
M: cord v*n '[ _ v*n ] cord-map ; inline
M: cord v/n '[ _ v/n ] cord-map ; inline
M: cord norm-sq dup v. ; inline
M: cord norm norm-sq sqrt ; inline
M: cord norm-sq [ norm-sq ] cord-both + ; inline
M: cord distance v- norm ; inline