math.extras: adding sum-squares and sum-cubes.
parent
acc06aeeee
commit
77d4d5179c
|
@ -142,3 +142,9 @@ IN: math.extras.test
|
|||
|
||||
{ { 0 1 2 3 0 0 1 } } [ { 1 2 3 3 2 1 2 } [ <= ] monotonic-count ] unit-test
|
||||
{ 4 } [ { 1 2 3 1 2 3 4 5 } [ < ] max-monotonic-count ] unit-test
|
||||
|
||||
{ 2470 } [ 20 iota sum-squares ] unit-test
|
||||
{ 2470 } [ 20 iota >array sum-squares ] unit-test
|
||||
|
||||
{ 36100 } [ 20 iota sum-cubes ] unit-test
|
||||
{ 36100 } [ 20 iota >array sum-cubes ] unit-test
|
||||
|
|
|
@ -307,3 +307,12 @@ PRIVATE>
|
|||
SYNTAX: .. dup pop scan-object [a,b) suffix! ;
|
||||
|
||||
SYNTAX: ... dup pop scan-object [a,b] suffix! ;
|
||||
|
||||
GENERIC: sum-squares ( seq -- n )
|
||||
M: object sum-squares [ sq ] map-sum ;
|
||||
M: iota-tuple sum-squares
|
||||
length 1 - [ ] [ 1 + ] [ 1/2 + ] tri * * 3 / ;
|
||||
|
||||
GENERIC: sum-cubes ( seq -- n )
|
||||
M: object sum-cubes [ 3 ^ ] map-sum ;
|
||||
M: iota-tuple sum-cubes sum sq ;
|
||||
|
|
Loading…
Reference in New Issue