From 2862843a9bd435a6c4610134619e375aa7295a70 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Sun, 26 Apr 2009 14:43:06 -0500 Subject: [PATCH 1/2] better fix for morse --- extra/morse/morse.factor | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/extra/morse/morse.factor b/extra/morse/morse.factor index 20989f2f2f..ddfd3c2042 100644 --- a/extra/morse/morse.factor +++ b/extra/morse/morse.factor @@ -3,7 +3,7 @@ USING: accessors ascii assocs biassocs combinators hashtables kernel lists literals math namespaces make multiline openal parser sequences splitting strings synth synth.buffers ; IN: morse -ERROR: no-morse-code ch ; +ERROR: no-morse-ch ch ; @@ -76,7 +76,7 @@ CONSTANT: morse-code-table $[ ] : ch>morse ( ch -- morse ) - ch>lower morse-code-table at unknown-char or ; + ch>lower morse-code-table at unknown-char 1string or ; : morse>ch ( str -- ch ) morse-code-table value-at char-gap-char or ; @@ -156,7 +156,8 @@ CONSTANT: beep-freq 880 { dot-char [ dot ] } { dash-char [ dash ] } { word-gap-char [ intra-char-gap ] } - [ drop intra-char-gap ] + { unknown-char [ intra-char-gap ] } + [ no-morse-ch ] } case ] interleave ; From 18abc8b9f141d6047102acb50a2a16f002ff07ff Mon Sep 17 00:00:00 2001 From: Samuel Tardieu Date: Mon, 27 Apr 2009 17:23:59 +0200 Subject: [PATCH 2/2] Add q+ and q- to math.quaternions This makes the quaternions library self-contained and more independent of the underlying representation. --- basis/math/quaternions/quaternions-docs.factor | 10 ++++++++++ basis/math/quaternions/quaternions-tests.factor | 4 ++++ basis/math/quaternions/quaternions.factor | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/basis/math/quaternions/quaternions-docs.factor b/basis/math/quaternions/quaternions-docs.factor index bb34ec8da2..a24011cb7c 100644 --- a/basis/math/quaternions/quaternions-docs.factor +++ b/basis/math/quaternions/quaternions-docs.factor @@ -1,6 +1,16 @@ USING: help.markup help.syntax math math.vectors vectors ; IN: math.quaternions +HELP: q+ +{ $values { "u" "a quaternion" } { "v" "a quaternion" } { "u+v" "a quaternion" } } +{ $description "Add quaternions." } +{ $examples { $example "USING: math.quaternions prettyprint ;" "{ C{ 0 1 } 0 } { 0 1 } q+ ." "{ C{ 0 1 } 1 }" } } ; + +HELP: q- +{ $values { "u" "a quaternion" } { "v" "a quaternion" } { "u-v" "a quaternion" } } +{ $description "Subtract quaternions." } +{ $examples { $example "USING: math.quaternions prettyprint ;" "{ C{ 0 1 } 0 } { 0 1 } q- ." "{ C{ 0 1 } -1 }" } } ; + HELP: q* { $values { "u" "a quaternion" } { "v" "a quaternion" } { "u*v" "a quaternion" } } { $description "Multiply quaternions." } diff --git a/basis/math/quaternions/quaternions-tests.factor b/basis/math/quaternions/quaternions-tests.factor index a6d255e421..3efc417e42 100644 --- a/basis/math/quaternions/quaternions-tests.factor +++ b/basis/math/quaternions/quaternions-tests.factor @@ -24,3 +24,7 @@ math.constants ; [ t ] [ qk q>v v>q qk = ] unit-test [ t ] [ 1 c>q q1 = ] unit-test [ t ] [ C{ 0 1 } c>q qi = ] unit-test +[ t ] [ qi qi q+ qi 2 q*n = ] unit-test +[ t ] [ qi qi q- q0 = ] unit-test +[ t ] [ qi qj q+ qj qi q+ = ] unit-test +[ t ] [ qi qj q- qj qi q- -1 q*n = ] unit-test diff --git a/basis/math/quaternions/quaternions.factor b/basis/math/quaternions/quaternions.factor index f2c2c6d226..b713f44ebd 100755 --- a/basis/math/quaternions/quaternions.factor +++ b/basis/math/quaternions/quaternions.factor @@ -20,6 +20,12 @@ IN: math.quaternions PRIVATE> +: q+ ( u v -- u+v ) + v+ ; + +: q- ( u v -- u-v ) + v- ; + : q* ( u v -- u*v ) [ q*a ] [ q*b ] 2bi 2array ;