Пример #1
0
        /// <summary>
        /// Checks if this FunctionGenerator can implement a certain function.
        /// </summary>
        /// <param name="S">The specification of the algebra.</param>
        /// <param name="F">The function to be implemented.</param>
        /// <returns>true if 'F' can be implemented</returns>
        public override bool CanImplement(Specification S, G25.fgs F)
        {
            if (!((F.Name == "log") && (F.MatchNbArguments(1)))) return false;

            string type = F.GetOption("type");
            if (type == null) return false;

            return type.ToLower().Equals("euclidean");
        }
Пример #2
0
 /// <returns>the RefGA.Multivector which represents the origin ("no" by default, but can be set by <c>optionOrigin="..."</c>).</returns>
 public RefGA.Multivector GetOrigin(Specification S, G25.fgs F)
 {
     String originName = "no";
     if (F.GetOption("origin") != null)
         originName = F.GetOption("origin");
     int bvIdx = S.GetBasisVectorIndex(originName);
     if (bvIdx < 0)
         throw new G25.UserException("Unknown basis vector specified for origin: " + originName,
             XML.FunctionToXmlString(S, F));
     else return new RefGA.Multivector(new RefGA.BasisBlade((uint)(1 << bvIdx)));
 }