"PSPF"4#v(0"dedaol saw PSPF :DOOG">:#,_$a,v >0"daol ton did dna dedeen si PSPF :DAB">:#,_$a,@ v; >::F\0pv ;< >f:|: -1 < v < >0"4469477.8"R'a0p0"64367386."R'b0p0"88208965."R'c0p0"13248554."R'd0pv v < >0"418042883520668.0"R'e0p0"5."R'f0p0"5.-"R'g0pv v < >0"57."R'h0p0"704021496210334.0-"R'i0p0"017097088999478.1"R'j0pv v < >0"704021496210334.0"R'k0p0"57.1"R'l0p0"490488580915946.0-"R'm0pv v < >0"124185167999942.2"R'n0pv v < >0"622160050289.01"R'o0p0"864634554489.3"R'p0p0"131452479805.6"R'q0pv v < >0"145451255479805.5"R'r0p0"744072664554489.1"R's0p0"067358814050289.7"R't0pv v < >0"682608849710.11"R'x0p0"937209019869.3"R'y0p0"080084001469.51"R'z0pv v < >"PSD3"4#v(0"dedaol PSD3 :DOOG">:#,_$a, v >0"daol ton did PSD3 :DAB">:#,_$a,@ v < >10g20g30g40g50g60gA90g-#v_70g-#v_50g-#v_ v v < < < >0")9 7 5( ecudorp ton did )6 5 4(+)3 2 1( A :DAB">:#,_$a,@ v < >0")9 7 5( decudorp )6 5 4( + )3 2 1( :DOOG">:#,_$a,v v < >70g80g90g30g20g10gB80g-#v_60g-#v_40g-#v_ v v < < < >0")8 6 4( ecudorp ton did )1 2 3(-)9 8 7( B :DAB">:#,_$a,@ v < >0")8 6 4( decudorp )1 2 3( - )9 8 7( :DOOG">:#,_$a,v v < >40g50g60g10g20g30gC30g-#v_06-F-#v_30g-#v_0 v v < < < >0")3 6- 3( ecudorp ton did )3 2 1 (ssorc )6 5 4( C :DAB">:#,_$a,@ v < >0")3 6- 3( decudorp )3 2 1( ssorc )6 5 4( :DOOG">:#,_$a,v v < >10g20g30g40g50g60gD' F-#v_ v v < >0"23 ecudorp ton did )6 5 4( tod )3 2 1( D :DAB">:#,_$a,@ v < >0"23 decudorp )6 5 4( tod )3 2 1( :DOOG">:#,_$a,v v < >40g50g60gL'a0g-#v_ v >0"4469477.8 ecudorp ton did )6 5 4( L :DAB">:#,_$a,@ v < >0"9477.8 decudorp )6 5 4( no L :DOOG">:#,_$a,v v < >10g20g30g40g50g60gM92*F-#v_a0g-#v_40g-#v_ v v < < < >0")81 01 4( ecudorp ton did )6 5 4(*)3 2 1( M :DAB">:#,_$a,@ v < >0")81 01 4( decudorp )6 5 4(*)3 2 1( M :DOOG">:#,_$a,v v < >40g50g60gN'b0g-#v_'c0g-#v_'d0g-#v_v v < < < >0")386. 965. 554.( ecudorp ton did )6 5 4( no N :DAB">:#,_$a,@ v < >0")386. 965. 554.( decudorp )6 5 4( no N :DOOG">:#,_$a,v v < >111F2F3FSv v < > 11g1F-#v_21g0F-#v_31g0F-#v_41g0F-#v_v v;v < < < <;< > 12g0F-#v_22g2F-#v_32g0F-#v_42g0F-#v_v v;v < < < <;< > 13g0F-#v_23g0F-#v_33g3F-#v_43g0F-#v_v v;v < < < <;< > 14g0F-#v_24g0F-#v_34g0F-#v_44g1F-#v_v v;v < < < <;< > 0"xirtam tcerroc eht decudorp S)3 2 1( :DOOG">:#,_$a, v >0")3 2 1( rof xirtam reporp eht ecudorp ton did S :DAB">:#,_$a,@ v < v < >511F2F3FTv v < > 51g1F-#v_61g0F-#v_71g0F-#v_81g1F-#v_v v;v < < < <;< > 52g0F-#v_62g1F-#v_72g0F-#v_82g2F-#v_v v;v < < < <;< > 53g0F-#v_63g0F-#v_73g1F-#v_83g3F-#v_v v;v < < < <;< > 54g0F-#v_64g0F-#v_74g0F-#v_84g1F-#v_v v;v < < < <;< > 0"xirtam tcerroc eht detaerc T)3 2 1( :DOOG">:#,_$a, v >0"xirtam tcerroc eht etaerc ton did T)3 2 1( :DAB">:#,_$a,@ v < >915111Yv v < > 91g1F-#v_a1g0F-#v_b1g0F-#v_c1g1F-#v_v v;v < < < <;< > 92g0F-#v_a2g2F-#v_b2g0F-#v_c2g4F-#v_v v;v < < < <;< > 93g0F-#v_a3g0F-#v_b3g3F-#v_c3g9F-#v_v v;v < < < <;< > 94g0F-#v_a4g0F-#v_b4g0F-#v_c4g1F-#v_v v;v < < < <;< > 0"dekrow T dna S morf scirtam ylpitlum :DOOG">:#,_$a, v >0"deliaf T dna S morf secirtam ylpitlum :DAB">:#,_$a,@ v < >1191Pv v < > 11g1F-#v_21g0F-#v_31g0F-#v_41g1F-#v_v v;v < < < <;< > 12g0F-#v_22g2F-#v_32g0F-#v_42g4F-#v_v v;v < < < <;< > 13g0F-#v_23g0F-#v_33g3F-#v_43g9F-#v_v v;v < < < <;< > 14g0F-#v_24g0F-#v_34g0F-#v_44g1F-#v_v v;v < < < <;< > 0"xirtam a deipoc yltcerroc P :DOOG">:#,_$a, v >0"xirtam a ypoc yltcerroc ton did P :DAB">:#,_$a,@ v < >511a3*FRv v < > 51g1F-#v_ 61g0F-#v_ 71g0F-#v_ 81g0F-#v_v v;v < < < <;< > 52g0F-#v_ 62g'e0g-#v_ 72g'g0g-#v_ 82g0F-#v_v v;v < < < <;< > 53g0F-#v_ 63g'f0g-#v_ 73g'e0g-#v_ 83g0F-#v_v v;v < < < <;< > 54g0F-#v_ 64g0F-#v_ 74g0F-#v_ 84g1F-#v_v v;v < < < <;< > 0"yltcerroc detaerc xirtam sixa X eerged 03 :DOOG">:#,_$a, v >0"yltcerroc detaerc ton xirtam sixa X eerged 03 :DAB">:#,_$a,@ v < >111151Yv v < >512a3*FRv v < > 51g'e0g-#v_ 61g0F-#v_ 71g'f0g-#v_ 81g0F-#v_v v;v < < < <;< > 52g0F-#v_ 62g1F-#v_ 72g0F-#v_ 82g0F-#v_v v;v < < < <;< > 53g'g0g-#v_ 63g0F-#v_ 73g'e0g-#v_ 83g0F-#v_v v;v < < < <;< > 54g0F-#v_ 64g0F-#v_ 74g0F-#v_ 84g1F-#v_v v;v < < < <;< > 0"yltcerroc detaerc xirtam sixa Y eerged 03 :DOOG">:#,_$a, v >0"yltcerroc detaerc ton xirtam sixa Y eerged 03 :DAB">:#,_$a,@ v < >111151Yv v < >513a3*FRv v < > 51g'e0g-#v_ 61g'g0g-#v_ 71g0F-#v_ 81g0F-#v_v v;v < < < <;< > 52g'f0g-#v_ 62g'e0g-#v_ 72g0F-#v_ 82g0F-#v_v v;v < < < <;< > 53g0F-#v_ 63g0F-#v_ 73g1F-#v_ 83g0F-#v_v v;v < < < <;< > 54g0F-#v_ 64g0F-#v_ 74g0F-#v_ 84g1F-#v_v v;v < < < <;< > 0"yltcerroc detaerc xirtam sixa Z eerged 03 :DOOG">:#,_$a, v >0"yltcerroc detaerc ton xirtam sixa Z eerged 03 :DAB">:#,_$a,@ v < >111151Yv v < > 11g'h0g-#v_ 21g'i0g-#v_ 31g'j0g-#v_ 41g'r0g-#v_v v;v < < < <;< > 12g'k0g-#v_ 22g'l0g-#v_ 32g'm0g-#v_ 42g's0g-#v_v v;v < < < <;< > 13g'g0g-#v_ 23g'e0g-#v_ 33g'n0g-#v_ 43g't0g-#v_v v;v < < < <;< > 14g0F-#v_ 24g0F-#v_ 34g0F-#v_ 44g1F-#v_v v;v < < < <;< > 0"tcerroc si xirtam noitamrofsnart lanif :DOOG">:#,_$a,v >0"gnorw si xirtam noitamrofsnart laniF :DAB">:#,_$a,@ v < >1F2F3F11X'z0g-#v_'y0g-#v_'x0g-#v_ v v < < < >0")69.51 69.3 10.11( teg ton did )3 2 1( no X :DAB">:#,_$a,@ v < >0")69.51 69.3 10.11( otni )3 2 1( demrofsnart yltcerroc X :DOOG">:#,_$a,v v < >1F2F3FU3F-#v_2F-#v_1F-#v_3F-#v_2F-#v_1F-#v_ v v < < < < < < >0")3 2 1( etacilpud ylreporp ton did U :DAB">:#,_$a,@ v < >0")3 2 1( detacilpud ylreporp U :DOOG">:#,_$a,v v < >3F1F2F3FZ9F-#v_6F-#v_3F-#v_ v v < < < >0")9 6 3( etareneg ton did 3 * )3 2 1( Z :DAB">:#,_$a,@ v < >0")9 6 3( etareneg did 3 * )3 2 1( Z :DOOG">:#,_$a,v v < >4F6F2FV3F-#v_2F-#v_0")3 2( detareneg V )2 6 4( :DOOG">:#,_$a, v > >0")3 2( etareneg ton did V )2 6 4( :DAB">:#,_$a,@ v < >4F6F0FV6F-#v_4F-#v_0")6 4( detareneg V )0 6 4( :DOOG">:#,_$a, v > >0")6 4( etareneg ton did V )0 6 4( :DAB">:#,_$a,@ v < >4F6F02-FV03-F-#v_02-F-#v_0")3- 2-( detareneg V )2- 6 4( :DOOG">:#,_$a,@ > >0")3- 2-( etareneg ton did V )2- 6 4( :DAB">:#,_$a,@ Expected Output: ---------------- GOOD: FPSP was loaded GOOD: 3DSP loaded GOOD: (1 2 3) + (4 5 6) produced (5 7 9) GOOD: (7 8 9) - (3 2 1) produced (4 6 8) GOOD: (4 5 6) cross (1 2 3) produced (3 -6 3) GOOD: (1 2 3) dot (4 5 6) produced 32 GOOD: L on (4 5 6) produced 8.7749 GOOD: M (1 2 3)*(4 5 6) produced (4 10 18) GOOD: N on (4 5 6) produced (.455 .569 .683) GOOD: (1 2 3)S produced the correct matrix GOOD: (1 2 3)T created the correct matrix GOOD: multiply matrics from S and T worked GOOD: P correctly copied a matrix GOOD: 30 degree X axis matrix created correctly GOOD: 30 degree Y axis matrix created correctly GOOD: 30 degree Z axis matrix created correctly GOOD: final transformation matrix is correct GOOD: X correctly transformed (1 2 3) into (11.01 3.96 15.96) GOOD: U properly duplicated (1 2 3) GOOD: Z (1 2 3) * 3 did generate (3 6 9) GOOD: (4 6 2) V generated (2 3) GOOD: (4 6 0) V generated (4 6) GOOD: (4 6 -2) V generated (-2 -3) Here is what various matrices should be: ---------------------------------------- (1 2 3)T should make: 1 0 0 1 0 1 0 2 0 0 1 3 0 0 0 1 (1 2 3)S should make: 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 0 Transform matrix starts with (result of S,T, and Y): 1 0 0 1 0 2 0 4 0 0 3 9 0 0 0 1 Correct X axis matrix: 1.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000 0.866025388240814 -0.500000000000000 0.000000000000000 0.000000000000000 0.500000000000000 0.866025388240814 0.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000 1.000000000000000 Correct Y axis matrix: 0.866025388240814 0.000000000000000 0.500000000000000 0.000000000000000 0.000000000000000 1.000000000000000 0.000000000000000 0.000000000000000 -0.500000000000000 0.000000000000000 0.866025388240814 0.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000 1.000000000000000 Correct Z axis matrix: 0.866025388240814 -0.500000000000000 0.000000000000000 0.000000000000000 0.500000000000000 0.866025388240814 0.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000 1.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000 0.000000000000000 1.000000000000000 Final transformation matrix: 0.750000000000000 -0.433012694120407 1.874999880790710 5.508974552154541 0.433012694120407 1.750000000000000 -0.649519085884094 1.984455466270447 -0.500000000000000 0.866025388240814 2.249999761581421 7.982050418853760 0.000000000000000 0.000000000000000 0.000000000000000 1.000000000000000 Using transform matrix on (1 2 3) should get: (11.017948806286 3.968910902739 15.964100480080)