Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
33
Task/Quaternion-type/PicoLisp/quaternion-type-1.l
Normal file
33
Task/Quaternion-type/PicoLisp/quaternion-type-1.l
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
(scl 6)
|
||||
|
||||
(def 'quatCopy copy)
|
||||
|
||||
(de quatNorm (Q)
|
||||
(sqrt (sum * Q Q)) )
|
||||
|
||||
(de quatNeg (Q)
|
||||
(mapcar - Q) )
|
||||
|
||||
(de quatConj (Q)
|
||||
(cons (car Q) (mapcar - (cdr Q))) )
|
||||
|
||||
(de quatAddR (Q R)
|
||||
(cons (+ R (car Q)) (cdr Q)) )
|
||||
|
||||
(de quatAdd (Q1 Q2)
|
||||
(mapcar + Q1 Q2) )
|
||||
|
||||
(de quatMulR (Q R)
|
||||
(mapcar */ (mapcar * Q (circ R)) (1.0 .)) )
|
||||
|
||||
(de quatMul (Q1 Q2)
|
||||
(mapcar
|
||||
'((Ops I)
|
||||
(sum '((Op R I) (Op (*/ R (get Q2 I) 1.0))) Ops Q1 I) )
|
||||
'((+ - - -) (+ + + -) (+ - + +) (+ + - +))
|
||||
'((1 2 3 4) (2 1 4 3) (3 4 1 2) (4 3 2 1)) ) )
|
||||
|
||||
(de quatFmt (Q)
|
||||
(mapcar '((R S) (pack (format R *Scl) S))
|
||||
Q
|
||||
'(" + " "i + " "j + " "k") ) )
|
||||
22
Task/Quaternion-type/PicoLisp/quaternion-type-2.l
Normal file
22
Task/Quaternion-type/PicoLisp/quaternion-type-2.l
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
(setq
|
||||
Q (1.0 2.0 3.0 4.0)
|
||||
Q1 (2.0 3.0 4.0 5.0)
|
||||
Q2 (3.0 4.0 5.0 6.0)
|
||||
R 7.0 )
|
||||
|
||||
(prinl "R = " (format R *Scl))
|
||||
(prinl "Q = " (quatFmt Q))
|
||||
(prinl "Q1 = " (quatFmt Q1))
|
||||
(prinl "Q2 = " (quatFmt Q2))
|
||||
(prinl)
|
||||
(prinl "norm(Q) = " (format (quatNorm Q) *Scl))
|
||||
(prinl "norm(Q1) = " (format (quatNorm Q1) *Scl))
|
||||
(prinl "norm(Q2) = " (format (quatNorm Q2) *Scl))
|
||||
(prinl "neg(Q) = " (quatFmt (quatNeg Q)))
|
||||
(prinl "conj(Q) = " (quatFmt (quatConj Q)))
|
||||
(prinl "Q + R = " (quatFmt (quatAddR Q R)))
|
||||
(prinl "Q1 + Q2 = " (quatFmt (quatAdd Q1 Q2)))
|
||||
(prinl "Q * R = " (quatFmt (quatMulR Q R)))
|
||||
(prinl "Q1 * Q2 = " (quatFmt (quatMul Q1 Q2)))
|
||||
(prinl "Q2 * Q1 = " (quatFmt (quatMul Q2 Q1)))
|
||||
(prinl (if (= (quatMul Q1 Q2) (quatMul Q2 Q1)) "Equal" "Not equal"))
|
||||
Loading…
Add table
Add a link
Reference in a new issue