コード例 #1
0
 internal GaNumMetricNonOrthogonal(GaNumFrame baseFrame, GaNumFrame derivedFrame, GaNumOutermorphism derivedToBaseCba, GaNumOutermorphism baseToDerivedCba)
 {
     BaseFrame        = baseFrame;
     DerivedFrame     = derivedFrame;
     DerivedToBaseCba = derivedToBaseCba;
     BaseToDerivedCba = baseToDerivedCba;
 }
コード例 #2
0
        internal GaNumFrameNonOrthogonal(GaNumFrame baseOrthoFrame, Matrix ipm, GaNumOutermorphism derivedToBaseOm, GaNumOutermorphism baseToDerivedOm)
        {
            if (baseOrthoFrame.IsOrthogonal == false)
            {
                throw new GMacNumericException("Base frame must be orthogonal");
            }

            if (ipm.IsDiagonal())
            {
                throw new GMacNumericException("Inner product matrix must be non-diagonal");
            }

            InnerProductMatrix = ipm;

            NonOrthogonalMetric =
                new GaNumMetricNonOrthogonal(
                    baseOrthoFrame,
                    this,
                    derivedToBaseOm,
                    baseToDerivedOm
                    );

            Op  = ComputedOp = new GaNumOp(VSpaceDimension);
            Gp  = ComputedGp = GaNumBilinearProductCba.CreateGp(NonOrthogonalMetric);
            Sp  = ComputedSp = GaNumBilinearProductCba.CreateSp(NonOrthogonalMetric);
            Lcp = ComputedLcp = GaNumBilinearProductCba.CreateLcp(NonOrthogonalMetric);
            Rcp = ComputedRcp = GaNumBilinearProductCba.CreateRcp(NonOrthogonalMetric);
            Fdp = ComputedFdp = GaNumBilinearProductCba.CreateFdp(NonOrthogonalMetric);
            Hip = ComputedHip = GaNumBilinearProductCba.CreateHip(NonOrthogonalMetric);
            Acp = ComputedAcp = GaNumBilinearProductCba.CreateAcp(NonOrthogonalMetric);
            Cp  = ComputedCp = GaNumBilinearProductCba.CreateCp(NonOrthogonalMetric);

            UnitPseudoScalarCoef =
                (MaxBasisBladeId.BasisBladeIdHasNegativeReverse() ? -1.0d : 1.0d) /
                BasisBladeSignature(MaxBasisBladeId)[0];
        }
コード例 #3
0
 public static GaNumOutermorphism ToOutermorphism(this Matrix linearVectorMapMatrix)
 {
     return(GaNumOutermorphism.Create(linearVectorMapMatrix));
 }