lq}3      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./012 (c) Artem ChirkinMITchirkin@arch.ethz.chNone,BDR3 ND vector42D Float vector5BFamily of all vector types, specialized on low-dimensional vectors364753647536475(c) Artem ChirkinMITchirkin@arch.ethz.chNone,<=?D8Compose a 4D vector9Compose a 3D vector: Cross product;Compose a 2D vector<[Take a determinant of a matrix composed from two 2D vectors. Like a cross product in 2D.=Fill Vec with the same valueMScalar product -- sum of Vecs' components products, propagated into whole Vec>>Scalar product -- sum of Vecs' components products -- a scalar?Get element by its index@Sum of absolute valuesA'hypot function (square root of squares)BMaximum of absolute valuesCMinimum of absolute valuesDNorm in Lp spaceEDimensionality of a vectorF8G9:H;<I=>?@ABCDEF8G9:H;<I>@ABCD=?EF8G9:H;<I =>?@ABCDE7(c) Artem ChirkinMITchirkin@arch.ethz.chNone,/9:;<=?BDIQRT[  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[6 ,-+*)('&%$#"! ./012345[ ./[Z012345YX-WV,UT+SR*QP)ON(ML'KJ&IH%GF$ED#CB"A@!?>=<;  :98762    ./0123456789:;<=>?A@!CB"ED#GF$IH%KJ&ML'ON(QP)SR*UT+WV,YX-Z[(c) Artem ChirkinMITchirkin@arch.ethz.chNone,BDRJ NxM D matrixKCFamily of all matrix types, specialized on low-dimensional matricesJLKJLKJLK(c) Artem ChirkinMITchirkin@arch.ethz.chNone9;BT )Primitive indexing. No checks, no safety.$Primitive get Word# (element offset))Primitive indexing. No checks, no safety.#Primitive get Int# (element offset))Primitive indexing. No checks, no safety.&Primitive get Double# (element offset))Primitive indexing. No checks, no safety.%Primitive get Float# (element offset)6Store content of a data type in a primitive byte array7Load content of a data type from a primitive byte arraySize of a data type in bytes!Alignment of a data type in bytes& (c) Artem ChirkinMITchirkin@arch.ethz.chNone,<=?BDM&matrix-matrix or matrix-vector productNCompose a 2x2D matrixO&Mat with 1 on diagonal and 0 elsewhereP3Put the same value on the Mat diagonal, 0 otherwiseQDeterminant of MatRSum of diagonal elementsS+Get the diagonal elements from Mat into VecT0Set Vec values into the diagonal elements of MatUFill Mat with the same valueVGet element by its indexW Transpose MatX First dimension size of a matrixY!Second dimension size of a matrixZGet vector column by its index[Get vector row by its index\BDo something in a loop for int i from 0 to n-1 and j from 0 to m-1"]^_M`NabcOPQRSTdUVWXYZ[efghijklmn\!]^_M`NabcROPQTSdWZ[XYUVefghijklmn]^_M`NabcOPQRSTdUVWXYZ[efghijklmn\(c) Artem ChirkinMITchirkin@arch.ethz.chNone ,9:;<=BTo,Do something in a loop for int i from 0 to npBDo something in a loop for int i from 0 to n-1 and j from 0 to m-1qLSwap columns i and j. Does not check if i or j is larger than matrix width mrStarting from i-th row and i+1-th column, substract a multiple of i-th column from i+1 .. m columns, such that there are only zeroes in i-th row and i+1..m columns elements.s7Substract a multiple of i-th column from 0 .. i-1 and i+1 .. m columns, such that there are only zeroes in i-th row and i+1..m columns elements. Assuming that elements 0..i-1 in i-th row are zeroes, so they do not affect other columns. After all columns updated, divide i-th row by its diagonal elementtDRemove a multiple of one row from another one. do: xi = xi - yi*autGives index of maximum (absolute) element in i-th row, starting from i-th element only. If i >= m then returns i.vImplement partial ordering for w, x, y, z" and lexicographical ordering for {|}~opqrstuv|}~opqrstuv (c) Artem ChirkinMITchirkin@arch.ethz.chNone,:BQR !K]^_M`NabcROPQTSdWZ[XYUV  (c) Artem ChirkinMITchirkin@arch.ethz.chNone,9;<=B#element-wise operations for vectorsImplement partial ordering for w, x, y, " and lexicographical ordering for {   (c) Artem ChirkinMITchirkin@arch.ethz.chNone,9;<=BDQRT.Do something in a loop for int i from 0 to n-1Implement partial ordering for w, x, y, z" and lexicographical ordering for { (c) Artem ChirkinMITchirkin@arch.ethz.chNone,:BQR<Append one vector to another, adding up their dimensionality5F8G9:H;<I>@ABCD=?E5(c) Artem ChirkinMITchirkin@arch.ethz.chNone,/9:;<=BDIQRT%Fill whole tensor with a single valueGet an element of a tensorGet a column vector of a matrixGet a row vector of a matrixRMatrix product for tensors rank 2, as well matrix-vector or vector-matrix productsRMatrix product for tensors rank 2, as well matrix-vector or vector-matrix products#Divide on the right: R = A * B^(-1)"Divide on the left: R = A^(-1) * bMatrix inverse<Append one vector to another, adding up their dimensionalityCompose a 2x2D matrixCompose a 3x3D matrixCompose a 4x4D matrix#Cross product for two vectors in 3D#Cross product for two vectors in 3DDot product of two vectorsDot product of two vectorsSum of absolute values'hypot function (square root of squares)Maximum of absolute valuesMinimum of absolute valuesNorm in Lp space7Identity matrix. Mat with 1 on diagonal and 0 elsewhere3Put the same value on the Mat diagonal, 0 otherwiseDeterminant of MatSum of diagonal elements+Get the diagonal elements from Mat into Vec+Get the diagonal elements from Mat into Vec0Set Vec values into the diagonal elements of Mat0Set Vec values into the diagonal elements of MatX>>O7577  !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8_      !"#$%&'()*+,-lkjmh./0./81234567898:;<=>?@ABCDEFGHIJKLM<NOPQRSTUVTUWTUXYZ[TU\]^_`abcdefghijkl          m nTU[ o p q r s t u v M w x ` a y b z { | } ~        99)easytensor-0.1.0.0-7LCuuF5vC9b3Gckr6yprfoNumeric.EasyTensorNumeric.TensorNumeric.CommonsNumeric.Vector.FamilyNumeric.Vector.ClassNumeric.Matrix.FamilyNumeric.Matrix.ClassNumeric.Matrix.Base.FloatXNMNumeric.MatrixNumeric.Vector.Base.FloatX2Numeric.Vector.Base.FloatXNNumeric.Vector.*. AppendDim appendDim SomeMatrix SomeVectorNDArray MatrixNxM Matrix2x2 Matrix1x1VectorNVector4Vector3Vector2Vector1PlusplusTensorCalculusTensor TensorStoreVec2 DimensionsdimsDimTnmT2mT1mT0mTn2Tn1Tn0T02T11T20T01T10T00headDimtailDim printCrazycontraDimsType coDimsType contraDimscoDimsvec2$fAppendDimtVectorNVectorN$fAppendDimtVector4VectorN$fAppendDimtVector3Vector4$fAppendDimtVector2Vector3 $fShowNDArray $fPlusVectorN $fPlusVector4 $fPlusVector3 $fPlusVector2 $fPlusVector1D:R:Tensort::0$fTensorCalculust::D:R:Tensort::2$fTensorCalculust::0D:R:Tensort::4$fTensorCalculust::1D:R:Tensort[]:0$fTensorCalculust[]:D:R:Tensort::6$fTensorCalculust::2D:R:Tensort::8$fTensorCalculust::3D:R:Tensort:[]0$fTensorCalculust:[]D:R:Tensort[]:2$fTensorCalculust[]:0D:R:Tensort::10$fTensorCalculust::4D:R:Tensort:[]2$fTensorCalculust:[]0D:R:Tensort[]:4$fTensorCalculust[]:1D:R:Tensort:[]4$fTensorCalculust:[]1D:R:Tensort[][]0$fTensorCalculust[][] $fDimensions:$fDimensions[] $fShowTensor $fShowTensor0 $fShowTensor1 $fShowTensor2 $fShowTensor3 $fShowTensor4 $fShowTensor5$fBoundedTensor $fEnumTensor $fEqTensor$fIntegralTensor $fNumTensor$fFractionalTensor$fFloatingTensor $fOrdTensor $fReadTensor $fRealTensor$fRealFracTensor$fRealFloatTensor $fShowTensor6 $fShowVector1 $fShowVector2 $fShowVector3 $fShowVector4 $fShowVectorN$fShowMatrix1x1$fShowMatrix2x2$fShowMatrixNxM $fShowTensor7 $fShowTensor8 $fShowTensor9 $fNumTensor0 $fPlusTensor$fShowTensor10 $fPlusTensor0$fShowTensor11 WordBytesixWIntBytesixI DoubleBytesixD FloatBytesixF PrimBytestoBytes fromBytesbyteSize byteAlign$fWordBytesWord64$fPrimBytesWord64$fWordBytesWord32$fPrimBytesWord32$fWordBytesWord16$fPrimBytesWord16$fWordBytesWord8$fPrimBytesWord8$fWordBytesWord$fPrimBytesWord$fIntBytesInt64$fPrimBytesInt64$fIntBytesInt32$fPrimBytesInt32$fIntBytesInt16$fPrimBytesInt16$fIntBytesInt8$fPrimBytesInt8 $fIntBytesInt$fPrimBytesInt$fDoubleBytesDouble$fPrimBytesDouble$fFloatBytesFloat$fPrimBytesFloat $fStorableaMat44fMat34fMat24fMat43fMat33fMat23fMat42fMat32fMat22fVec4f'Vec3f'Vec2f'Vec4fVec3fVec2fVec'VecMatfillindexindexColindexRow transposedimNdimM%*prod//\\inverse<:>scalarvec2'vec3vec3'vec4vec4'mat22mat33mat44det2det2'×cross·dotnormL1normL2 normLPInf normLNInfnormLPeyediagdettracefromDiag fromDiag'toDiagtoDiag'$fMatrixCalculust1mCoVector$fMatrixCalculustn1ContraVector$fMatrixInverseScalar$fSquareMatrixCalculust1Scalar$fMatrixCalculust11Scalar$fVectorCalculust1Scalar!$fMatrixProductTensorTensorTensor"$fMatrixProductTensorTensorTensor0 $fShowMatrix$fShowContraVector$fShowCoVector $fShowScalar$fBoundedScalar $fEnumScalar $fEqScalar$fIntegralScalar $fNumScalar$fFractionalScalar$fFloatingScalar $fOrdScalar $fReadScalar $fRealScalar$fRealFracScalar$fRealFloatScalar$fPrimBytesScalar$fFloatBytesScalar$fDoubleBytesScalar$fIntBytesScalar$fWordBytesScalar$fWordBytesMatrix$fIntBytesMatrix$fDoubleBytesMatrix$fFloatBytesMatrix$fMatrixInverseMatrix$fSquareMatrixCalculusMatrix$fMatrixCalculusMatrix$fPrimBytesMatrix$fFloatingMatrix$fFractionalMatrix $fNumMatrix $fOrdMatrix $fEqMatrix$fWordBytesContraVector$fIntBytesContraVector$fDoubleBytesContraVector$fFloatBytesContraVector$fVectorCalculusContraVector$fPrimBytesContraVector$fFloatingContraVector$fFractionalContraVector$fNumContraVector$fOrdContraVector$fEqContraVector$fWordBytesCoVector$fIntBytesCoVector$fDoubleBytesCoVector$fFloatBytesCoVector$fVectorCalculusCoVector$fPrimBytesCoVector$fFloatingCoVector$fFractionalCoVector $fNumCoVector $fOrdCoVector $fEqCoVector$fWordBytesTensor$fIntBytesTensor$fDoubleBytesTensor$fFloatBytesTensor$fPrimBytesTensor$fMatrixInverseTensor$fSquareMatrixCalculusTensor$fMatrixCalculusTensor$fVectorCalculusTensor$fVectorCalculusTensor0VFloatXNVFloatX2Vector broadcastVecindexVecdimVector4DVector3DVector2DVectorCalculus MFloatXNMMatrix broadcastMatindexMatloop2# MatrixInverse MatrixProduct rowsOfM22 colsOfM22SquareMatrixCalculusMatrixCalculusprodFprodDprodI8prodI16prodI32prodI64prodW8prodW16prodW32prodW64loop# swapCols# clearRowEnd# clearRowAll# multNRem# maxInRowRem#$fOrdMFloatXNMghc-prim GHC.Classes><>=base GHC.TypeLits<=compareproxyN#dimN#dimM#zipVmapVaccumV2$fMatrixInverseMFloatXNM%$fSquareMatrixCalculusFloatnMFloatXNM$fFloatBytesMFloatXNM$fPrimBytesMFloatXNM $fMatrixCalculusFloatnmMFloatXNM$fFloatingMFloatXNM$fFractionalMFloatXNM$fNumMFloatXNM $fEqMFloatXNM$fShowMFloatXNM $fNumVFloatX2 $fOrdVFloatX2$fFloatBytesVFloatX2$fPrimBytesVFloatX2$fVector2DFloat$fVectorCalculusFloat2VFloatX2$fFloatingVFloatX2$fFractionalVFloatX2 $fEqVFloatX2$fShowVFloatX2 $fOrdVFloatXNdim# accumVFloat accumV2Float accumVReverse$fFloatBytesVFloatXN$fPrimBytesVFloatXN$fVectorCalculusFloatnVFloatXN$fFloatingVFloatXN$fFractionalVFloatXN $fNumVFloatXN $fEqVFloatXN$fShowVFloatXNTT ContraVector _unContraVecCoVector_unCoVecScalar _unScalar_unT