úÎ!2Ì0$(      !"#$%&'None=?HMV'8 simple-vec3 implementation with w instance based on default Unbox instance for tuples of arrays, which wraps a vector of tuples as a tuple of vectors. ÿ interface: [v1 (x, y, z); v2 (x, y, z) ...], length = N | | | | | | storage(x): [v1x-+ | | ; v2x-+ | | ...], length = N storage(y): [v1y----+ | ; v2y----+ | ...], length = N storage(z): [v1z-------+ ; v2z-------+ ...], length = N "You almost definitely want to use ' instead as it has better performance. simple-vec39Three-dimensional vector, with an associated matrix type. simple-vec3Associated type for 3×3 matrix. simple-vec3 Origin point  (0, 0, 0). simple-vec3'Construct a new vector from components. simple-vec3%Deconstruct a vector into components. simple-vec3Zip two vectors elementwise. simple-vec3Add two vectors. simple-vec3Subtract two vectors.  simple-vec3Cross product.  simple-vec3Scale a vector.  simple-vec3 Dot product.  simple-vec3Euclidean norm of a vector.  simple-vec3AProduce unit vector with the same direction as the original one. simple-vec3Distance between two points. simple-vec3!Invert the direction of a vector. simple-vec3!Construct a new matrix from rows. simple-vec3Deconstruct a matrix into rows. simple-vec3Generic vector dot product.oMultiply the transpose of the first vector by the given matrix, then multiply the result by the second vector. ô [ a11 a12 a13 ] [ v2x ] [ ] [ ] [ v1x v1y v1z ] . [ a21 a22 a23 ] . [ v2y ] = s [ ] [ ] [ a31 a32 a33 ] [ v2z ]  simple-vec3Multiply a matrix and a vector. ¹[ a11 a12 a13 ] [ v2x ] [ rx ] [ ] [ ] [ ] [ a21 a22 a23 ] . [ v2y ] = [ ry ] [ ] [ ] [ ] [ a31 a32 a33 ] [ v2z ] [ rz ]  simple-vec3&Build a diagonal matrix from a number d. <[ d 0 0 ] [ ] [ 0 d 0 ] [ ] [ 0 0 d ]  simple-vec3JTranspose a vector and multiply it by another vector, producing a matrix. ð[ v1x ] [ r11 r12 r13 ] [ ] [ ] [ v1y ] . [ v2x v2y v2z ] = [ r21 r22 r23 ] [ ] [ ] [ v1z ] [ r31 r32 r33 ]  simple-vec3Add two matrices.    55 6 7 6None=?@AHV.ù simple-vec3 implementation with  and V instances based on a single contiguous array storage scheme, suitable for use with Data.Vector.Unboxed and Data.Vector.Storable. §interface: [v1 x y z ; v2 x y z ...], length = N = M / 3 | | | | | | storage: [ v1x v2y v2z ; v2x v2y v2z ...], length = M -This implementation has the best performance.    Safe/ÿ()*+,-./0      !" #$%&'(!")*+,-./0123&simple-vec3-0.5-9r9fYj29k3E6qBoEVNdcVNData.Vec3.Class Data.Vec3Data.Vector.UnboxedUnboxCVec3StorablePaths_simple_vec3TVec3Vec3MatrixoriginfromXYZtoXYZzipWith<+><->><.^.*norm normalizedistanceinvertfromRowstoRowsdotMmxvdiagvxvaddM $fVec3(,,)$fArbitraryMatrix $fEqMatrix $fShowMatrix$fArbitraryCVec3$fStorableCVec3 $fUnboxCVec3$fVectorVectorCVec3$fMVectorMVectorCVec3 $fVec3CVec3 $fEqCVec3 $fShowCVec3version getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName