private static int[] ComputeBasisBladesSignatures(int[] frameSigList) { var vSpaceDim = frameSigList.Length; var bbsList = new int[FrameUtils.GaSpaceDimension(vSpaceDim)]; bbsList[0] = 1; for (var m = 0; m < vSpaceDim; m++) { bbsList[1 << m] = frameSigList[m]; } var idsSeq = FrameUtils.BasisBladeIDsSortedByGrade(vSpaceDim, 2); foreach (var id in idsSeq) { int id1, id2; id.SplitBySmallestBasisVectorId(out id1, out id2); bbsList[id] = bbsList[id1] * bbsList[id2]; } return(bbsList); }
private static MathematicaScalar[] ComputeBasisBladesSignatures(MathematicaScalar[] basisVectorsSignaturesList) { var vspacedim = basisVectorsSignaturesList.Length; var bbsList = new MathematicaScalar[FrameUtils.GaSpaceDimension(vspacedim)]; bbsList[0] = SymbolicUtils.Constants.One; for (var m = 0; m < vspacedim; m++) { bbsList[1 << m] = basisVectorsSignaturesList[m]; } var idsSeq = FrameUtils.BasisBladeIDsSortedByGrade(vspacedim, 2); foreach (var id in idsSeq) { int id1, id2; id.SplitBySmallestBasisVectorId(out id1, out id2); bbsList[id] = bbsList[id1] * bbsList[id2]; } return(bbsList); }
private static string EuclideanSample(int vSpaceDim) { Composer.Clear(); var basisBladeIds = FrameUtils.BasisBladeIDsSortedByGrade(vSpaceDim).ToArray(); Composer .AppendLine("Involution Tables, " + vSpaceDim + "D Space:") .IncreaseIndentation() .AppendLine(InvolutionTables(basisBladeIds)) .DecreaseIndentation() .AppendLineAtNewLine(PageSeparator) .AppendLine(); Composer .AppendLine("Geometric Product Table, " + vSpaceDim + "D Space:") .IncreaseIndentation() .AppendLine(EuclideanBilinearProductTable(basisBladeIds, EuclideanUtils.IsZeroEuclideanGp)) .DecreaseIndentation() .AppendLineAtNewLine(PageSeparator) .AppendLine(); Composer .AppendLine("Outer Product Table, " + vSpaceDim + "D Space:") .IncreaseIndentation() .AppendLine(EuclideanBilinearProductTable(basisBladeIds, EuclideanUtils.IsZeroOp)) .DecreaseIndentation() .AppendLineAtNewLine(PageSeparator) .AppendLine(); Composer .AppendLine("Scalar Product Table, " + vSpaceDim + "D Space:") .IncreaseIndentation() .AppendLine(EuclideanBilinearProductTable(basisBladeIds, EuclideanUtils.IsZeroEuclideanSp)) .DecreaseIndentation() .AppendLineAtNewLine(PageSeparator) .AppendLine(); Composer .AppendLine("Left Contraction Product Table, " + vSpaceDim + "D Space:") .IncreaseIndentation() .AppendLine(EuclideanBilinearProductTable(basisBladeIds, EuclideanUtils.IsZeroEuclideanLcp)) .DecreaseIndentation() .AppendLineAtNewLine(PageSeparator) .AppendLine(); Composer .AppendLine("Right Contraction Product Table, " + vSpaceDim + "D Space:") .IncreaseIndentation() .AppendLine(EuclideanBilinearProductTable(basisBladeIds, EuclideanUtils.IsZeroEuclideanRcp)) .DecreaseIndentation() .AppendLineAtNewLine(PageSeparator) .AppendLine(); return(Composer.ToString()); }