"norm" doesn't need to be generic, "norm-sq sqrt" always works
parent
7da80f65e7
commit
0795c60b83
|
@ -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 ;
|
||||
|
|
|
@ -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 } ;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue