Esempio n. 1
0
        /// <summary>
        /// frameSigList must have all items equal to 1 (false) or -1 (true) with at least one negative item
        /// </summary>
        /// <param name="frameSigList"></param>
        internal GaNumFrameOrthonormal(IEnumerable <bool> frameSigList)
        {
            BasisVectorsSignatures = frameSigList.Select(b => b ? -1 : 1).ToArray();

            OrthonormalMetric = GaNumMetricOrthonormal.Create(BasisVectorsSignatures);

            Op  = ComputedOp = new GaNumOp(VSpaceDimension);
            Gp  = ComputedGp = new GaNumOrthonormalGp(OrthonormalMetric);
            Sp  = ComputedSp = new GaNumOrthonormalSp(OrthonormalMetric);
            Lcp = ComputedLcp = new GaNumOrthonormalLcp(OrthonormalMetric);
            Rcp = ComputedRcp = new GaNumOrthonormalRcp(OrthonormalMetric);
            Fdp = ComputedFdp = new GaNumOrthonormalFdp(OrthonormalMetric);
            Hip = ComputedHip = new GaNumOrthonormalHip(OrthonormalMetric);
            Acp = ComputedAcp = new GaNumOrthonormalAcp(OrthonormalMetric);
            Cp  = ComputedCp = new GaNumOrthonormalCp(OrthonormalMetric);

            UnitPseudoScalarCoef =
                (MaxBasisBladeId.BasisBladeIdHasNegativeReverse() ? -1.0d : 1.0d) /
                OrthonormalMetric[MaxBasisBladeId];
        }
Esempio n. 2
0
 internal GaNumOrthonormalLcp(GaNumMetricOrthonormal basisBladesSignatures)
     : base(basisBladesSignatures)
 {
 }
Esempio n. 3
0
        public static IGaNumMultivectorTemp AddFactors(this IGaNumMultivectorTemp tempMv, IEnumerable <GaNumMultivectorBiTerm> biTerms, GaNumMetricOrthonormal orthonormalMetric)
        {
            foreach (var biTerm in biTerms)
            {
                tempMv.AddFactor(
                    biTerm.IdXor,
                    biTerm.IsNegativeEGp,
                    biTerm.ValuesProduct * orthonormalMetric[biTerm.IdAnd]
                    );
            }

            return(tempMv);
        }
Esempio n. 4
0
 protected GaNumBilinearProductOrthonormal(GaNumMetricOrthonormal basisBladesSignatures)
 {
     OrthonormalMetric = basisBladesSignatures;
 }