RPN.2.f+3 \V1.0 - nuff said \V1.1 - test for 0 length in unit vec \V1.2 - fix cross product \Get & put A & B vectors [a]xaxbxc; [b]xdxexf; [x]XcXbXa; [y]XfXeXd; \Duplicate a vector [d]g3g3g3; \Vector functions [l]r32Pr32Pr32P++s; \length [s]g1r5*r2g1r5*r2r4*; \scale [t]r6r4+r5r4+r4r4+; \sum [u]r6r4-r5r4-r4r4-; \difference [v]r6r4*r5r4*r4r4*++; \dot product "3D Vector" "A+B: vector sum" CaCbCt; "A-B: vector difference" CaCbCu; "A.B: vector dot product" CaCbCv; "AxB: vector product" xbxf*xexc*-xcxd*xaxf*-xaxe*xbxd*-; ~ "|A|: vector length" CaCl; "â: unit vector" CaClg10=0(d1D'Zero length vector!|OK|'d1:Car4tCs); "s.A: scale vector" ?1Car4Cs; "A<>B: swap vectors" CaCbCxCy; ~ ">A: get A from stack" ?3Cx; ">B: get B from stack" ?3Cy; "A>: put A on stack" Ca; "B>: put B on stack" Cb; ~ "Clear: pop vector values" ?3d1d1d1;