Example #1
0
        /// <summary>
        /// HYPERBOLIC.Mul : res = a * b
        /// The geometric product.
        /// </summary>
        public static HYPERBOLIC operator *(HYPERBOLIC a, HYPERBOLIC b)
        {
            HYPERBOLIC res = new HYPERBOLIC();

            res[0] = b[0] * a[0] + b[1] * a[1];
            res[1] = b[1] * a[0] + b[0] * a[1];
            return(res);
        }
Example #2
0
        /// <summary>
        /// HYPERBOLIC.Conjugate : res = a.Conjugate()
        /// Clifford Conjugation
        /// </summary>
        public HYPERBOLIC Conjugate()
        {
            HYPERBOLIC res = new HYPERBOLIC();

            res[0] = this[0];
            res[1] = -this[1];
            return(res);
        }
Example #3
0
        /// <summary>
        /// HYPERBOLIC.Involute : res = a.Involute()
        /// Main involution
        /// </summary>
        public HYPERBOLIC Involute()
        {
            HYPERBOLIC res = new HYPERBOLIC();

            res[0] = this[0];
            res[1] = -this[1];
            return(res);
        }
Example #4
0
        /// <summary>
        /// HYPERBOLIC.Dual : res = !a
        /// Poincare duality operator.
        /// </summary>
        public static HYPERBOLIC operator !(HYPERBOLIC a)
        {
            HYPERBOLIC res = new HYPERBOLIC();

            res[0] = a[1];
            res[1] = a[0];
            return(res);
        }
Example #5
0
        /// <summary>
        /// HYPERBOLIC.adds : res = a + b
        /// multivector/scalar addition
        /// </summary>
        public static HYPERBOLIC operator +(HYPERBOLIC a, float b)
        {
            HYPERBOLIC res = new HYPERBOLIC();

            res[0] = a[0] + b;
            res[1] = a[1];
            return(res);
        }
Example #6
0
        /// <summary>
        /// HYPERBOLIC.sadd : res = a + b
        /// scalar/multivector addition
        /// </summary>
        public static HYPERBOLIC operator +(float a, HYPERBOLIC b)
        {
            HYPERBOLIC res = new HYPERBOLIC();

            res[0] = a + b[0];
            res[1] = b[1];
            return(res);
        }
Example #7
0
        /// <summary>
        /// HYPERBOLIC.Sub : res = a - b
        /// Multivector subtraction
        /// </summary>
        public static HYPERBOLIC operator -(HYPERBOLIC a, HYPERBOLIC b)
        {
            HYPERBOLIC res = new HYPERBOLIC();

            res[0] = a[0] - b[0];
            res[1] = a[1] - b[1];
            return(res);
        }
Example #8
0
        /// <summary>
        /// HYPERBOLIC.Vee : res = a & b
        /// The regressive product. (JOIN)
        /// </summary>
        public static HYPERBOLIC operator &(HYPERBOLIC a, HYPERBOLIC b)
        {
            HYPERBOLIC res = new HYPERBOLIC();

            res[1] = 1 * (a[1] * b[1]);
            res[0] = 1 * (a[0] * b[1] + a[1] * b[0]);
            return(res);
        }