Ticket #6318: trac_6318_axiom_interface.patch

File trac_6318_axiom_interface.patch, 2.9 KB (added by awebb, 13 years ago)
  • sage/interfaces/axiom.py

    # HG changeset patch
    # User Adam Webb <adamwebb_rrs@yahoo.com>
    # Date 1246103188 -7200
    # Node ID 625ff106efda9fe2503e4bb7c90e1e6c39d7a2ae
    # Parent  910a3b0e885ed3e9e26165e35e29c5f25675a51a
    trac_6318 bug-fixes for axiom/fricas interface
    
    diff -r 910a3b0e885e -r 625ff106efda sage/interfaces/axiom.py
    a b  
    474474        out = "\n".join(line[i+1:] for line in outs[1:])
    475475        return out
    476476
     477    # define relational operators
     478    def _equality_symbol(self):
     479        """equality symbol
     480
     481        EXAMPLES::
     482       
     483            sage: a = axiom(x==6); a    #optional axiom
     484            x= 6
     485            sage: a = fricas(x==6); a   #optional fricas
     486            x= 6
     487        """
     488        return "="
     489
    477490
    478491class Axiom(PanAxiom):
    479492    def __reduce__(self):
     
    685698            sage: two.comma(3,4)   #optional - fricas
    686699            [2,3,4]
    687700            sage: _.type()         #optional - fricas
    688             Tuple PositiveInteger
     701            Tuple(PositiveInteger)
    689702
    690703        """
    691704        P = self._check_valid()
  • sage/interfaces/fricas.py

    diff -r 910a3b0e885e -r 625ff106efda sage/interfaces/fricas.py
    a b  
    255255        fricas_console()
    256256
    257257class FriCASElement(PanAxiomElement):
    258     pass
     258    def _sage_domain(self):
     259        """
     260        A helper function for converting FriCAS domains to the corresponding
     261        Sage object.
     262       
     263        EXAMPLES::
     264       
     265            sage: fricas('Integer').sage() #optional - fricas
     266            Integer Ring
     267            sage: fricas('Fraction Integer').sage() #optional - fricas
     268            Rational Field
     269            sage: fricas('DoubleFloat').sage() #optional - fricas
     270            Real Double Field
     271
     272        """
     273        P = self._check_valid()
     274        name = str(self)
     275        if name == 'Integer':
     276            from sage.rings.all import ZZ
     277            return ZZ
     278        elif name == 'DoubleFloat':
     279            from sage.rings.all import RDF
     280            return RDF
     281        elif name.startswith('Fraction('):
     282            name = name.lstrip('Fraction(')
     283            name = name.rstrip(')')
     284            return P(name)._sage_domain().fraction_field()
     285
     286        raise NotImplementedError
    259287
    260288class FriCASFunctionElement(PanAxiomFunctionElement):
    261289    pass
  • sage/structure/sage_object.pyx

    diff -r 910a3b0e885e -r 625ff106efda sage/structure/sage_object.pyx
    a b  
    321321        return self._interface_(G)
    322322   
    323323    def _fricas_init_(self):
    324         return self._interface_init_()   
     324        import sage.interfaces.fricas
     325        I = sage.interfaces.fricas.fricas
     326        return self._interface_init_(I)   
    325327
    326328    def _maxima_(self, G=None):
    327329        if G is None: