wBk1      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ portable provisionalechbar137@yahoo.co.inSafe&Represents the color of a cubie face. Sides of a cube. #Defines an axis for slab movement. $Defines direction of slab movement. "/Defines a rotation of an arbitrary cube slice. %DUsed by Template to map logical structure of cube to display views. ) Left and right 3D view of cube. ,4Used for simplistic processing of console commands. 37Matrices in hcube are constructed from column vectors. H The third vector is often chosen as the cross product of the first two 1 such that the determinate of the matrix is one. 5-Type used to specify state of physical cube. 7EString with each character representing a color of a physical cubie. 90Vector which orientation group matrices act on. 0 Also used for calculating new cubie positions. :GPoint is used in transformations of cubies in a two dimensional plane. ;OPhysical size of cube. For example a value of 3 refers to original 3x3x3 Rubik's cube. <Integer type used in hcube. =YRepresents the color white. Modify if the physical cube uses a different coloring scheme D#Gives inverse of a cube operation. E Reverses direction of rotation. F/Associates a side of a solved cube to a color. GInverse of sideToColor I  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH<;:9876534,210/.-)+*%('&"$#!  =>?@ABCDEFG ! "$#%('&)+*,210/.-3456789:;<=>?@ABCDEFG Safeportable provisionalechbar137@yahoo.co.inSafeHBReturns square root of argument if argument is a perfect square. I0Multiple a matrix on the left side of a vector. JMultiple two matrices. KMultiple a matrix by a scalar. LThe cofactor of a matrix. MTranspose of a matrix. NInverse of a matrix. ODisplay a matrix. VA safe form of read. W1Applies a function on the domain of Side x Side. XList of the sides. YList of the vectors. ZMultiple a vector by a scalar. [QConvert a function with two vector arguments to one accepting a list of vectors. \The determinate of a matrix. ]KCalculate the determinate of a matrix constructed by three column vectors. ^Multiple a matrix by a scalar. _"The cross product of two vectors. `Vector multipled by scalar -1. a@Vectors we are interested in only have one non zero component. b'Position of non-zero vector component. c The dot product of two vectors. HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefportable provisionalechbar137@yahoo.co.inSafeg%Representation of Cubie orientation. i(Logical extension of Monoid to a group. k5List of names for elements of the orientation group. l*Two vector representation of orientation. m6Maps an element of the orientation group to a matrix. d Orient tranformation matrix is determined by specifing, (1,0,0) goes to v1 and (0,1,0) goes to v2. GMaps a matrix representation of an element of the orientation group to  | a two vector representation. n7Gives the name of an element of the orientation group. o>Constructs an element of the orientation group from the name. pInverse of sideToVec. qAssociates a side to a vector. rIGives the color of the side identified by the vector, in a solved state. sInverse of colorToVec. t>Raw number is an intermediate step in associating two vectors N to an orientation. The orientation number 1 corresponds to an orientation of ''a'' and so on. uInverse of rawToOrientNumber v3Maps a function of orientation over orient domain. w8Converts the orientation to the raw orientation number. ghijklmnopqrstuvwghijklmnopqrstuvwijghomnlpqtuwvsrkghijklmnopqrstuvwportable provisionalechbar137@yahoo.co.inSafexIndividual cube of Rubik's cube, known as a Cubie. } Vitrual Rubik's cube. Loads cube from a file. Saves cube to a file. +Performs a cube operation on virtual cube. q Conceptually this corresponds to multiplying the cube state by an appropriate element of the permutation group. * However a vector approach is used here. (Color of cube id on a face is returned. + This function is important for rendering. 'Returns the cubie at a given position. 'Creates a virtual cube in solved state YGenerates a tuple of cube ids corresponding to (corners, edges, centers, hidden cubies). %CubeSurf representing a solved cube. ?Converts from a surface view of cube to a cubie view of cube. ?Maps a face id defined with respect to a side, to the cube id. 6Converts a pseudo-vector representation to a cube id. 6Converts a cube id to a pseudo-vector representation. (xyz{|}~xyz{|}~}~xyz{|xyz{|} ~portable provisionalechbar137@yahoo.co.in Trustworthy=Map a cube operation to an element of the permutation group. portable provisionalechbar137@yahoo.co.in Trustworthy##portable provisionalechbar137@yahoo.co.in Safe-Inferredportable provisionalechbar137@yahoo.co.inSafe?Constructs a virtual cube from a physical cube using CubeSurf. IConstructs the orientaion of a cubie from the color of two of its faces.  portable provisionalechbar137@yahoo.co.inSafe /Show mapping of cube face to vector and color. ATwo vectors are required to uniquely determine cube orientation. C Orientation is defined as an operation from identity orientation. 2 Right face goes to face represented by vector 1. 1 Back gace goes to face represented by vector 2. TCube orientation can be viewed as a transformation of faces from identity position. *Matrix representation of oriention group. A Right handed coordinate system implies determinate must be one. 8Shows how colors on a cubie are mapped to orientation. )Displays inverses for orientation group. 5Displays multiplication table for orientation group. EDisplays how coloring of cubie is used to determine cube id of cube. ? Cube id represents position of cubie in solved configuration. (Displays mapping of face id to cube id. B Face ids are useful when specifing the state of a physical cube.      !"#$%&'()*+,-,./0123456789:;<<=;>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwxyz{|}~~   hcube-0.1.1 HCube.Data HCube.UtilityHCube.OrientGroup HCube.LibHCube.PermutationHCube.Template HCube.Test HCube.Cons HCube.Theory HCube.Common ActualCubeupfrontdownbackleftrightColorNoColorGreenBlueRedOrangeYellowWhiteSideNoSideRightSLeftSBackSFrontSDownSUpSSlabNoSlabVSliceHSliceLayer DirectionNoDirTwiceCounter ClockwiseRotation RotateCubeViewAssociationOriIdeSurViewRightVLeftVCommand NoCommandQuitHelpUndo Operation ProjectionMatrixCubeSurfColorTagFormatVecPointSizeNumbwhiteCyellowCorangeCredCblueCgreenCnoCinvOppinvDir sideToColor colorToSide squareRoot|*||**| multMatrix cofactors transposeMinverseshowMdoM~>~|<* concatMapM listToMaybe maybeRead spanFacessidesvecsmultVecmapVecdetvecDet matrixMultcrossminusvcompvposdot gateMinusmodMinusmodNotOrientGroupinvorientChrDomaingetVectoeidcons vecToSide sideToVec colorToVec vecToColorrawToOrientNumberorientNumberToRaw spanDomain rawOrientNumCubeposoricidRubikncrnedgcnthidloopviewhisloadCubesaveCube doCubeOps getFaceColorgetCubeFromPosinitCube cubeTypes solvedSurf consCubeInfo cubeIdsOfFaceposToIdgetPosgenPermrenderrunTests fromPhysical realToVirtual consOrient displayColorsdisplayOrientVecMappingdisplayOrientTransformsdisplayOrientMatricesdisplayColorToOrientdisplayOrientIdisplayOrientPdisplayColorTagsdisplayFaceIds $fShowColorgetLine2 twoPagesOnOnefourPagesOnOnepadRpadLprShowplShowfrom orientMap signDiscrim $fGroupOrient$fMonoidOrienttwistgetCuberotatehumanDirgetTwistOrientorientmoveCubeapplygetFaceOrientation transformgetAxis nullActCubefromFilerenderInternal renderLeft3D renderRight3D project3DjoinprojectD viewToStringcbLayout cbInternallProj2x2rProj2x2lProj3x3rProj3x3lProj4x4rProj4x4lProj5x5rProj5x5dProj2x2dProj3x3dProj4x4dProj5x5lTemp2x2rTemp2x2lTemp3x3rTemp3x3lTemp4x4rTemp4x4lTemp5x5rTemp5x5dTemp2x2dTemp3x3dTemp4x4dTemp5x5pad idPropertyorientIdorientPropertyargsargs2getSizeextractOrientInfocolorTagToCubeIdorientFromVecsorientFromSides vecsToTran vecToMxElem missingVecsideColorDomaindispLis