sorry, the new category is named OutputType

-------- Weitergeleitete Nachricht --------
Betreff:        New Category OutputForm
Datum:  Wed, 27 Mar 2019 17:05:33 +0100
Von:    Prof. Dr. Johannes Grabmeier privat <[email protected]>
An:     [email protected]



Dear all,

I am just adding and correcting feature to basic algebraic domains, e.g.
SAE, LocalAlgebra and Fraction, as for example simplification
is not implemented yet for certain non standard situations, (already
fixed):


(1) -> x : UTS(FRAC INT, 'x, 0)
                                                                                
         
Type: Void
(2) -> u := 1+x

   (2)  1 + x
                                                 Type:
UnivariateTaylorSeries(Fraction(Integer),x,0)
(3) -> v := x+x^2

             2
   (3)  x + x
                                                 Type:
UnivariateTaylorSeries(Fraction(Integer),x,0)
(4) -> u/v

         1 + x
   (4)  ------
             2
        x + x
                                       Type:
Fraction(UnivariateTaylorSeries(Fraction(Integer),x,0))
(5) -> uInv := recip u

                 2    3    4    5    6    7    8    9    10      11
   (5)  1 - x + x  - x  + x  - x  + x  - x  + x  - x  + x   + O(x  )
                                      Type:
Union(UnivariateTaylorSeries(Fraction(Integer),x,0),...)

To this end I came to change the output of SAE - and for that I invented
a Category, which easily
allows the user to change the coercion to OutputForm. I suggest to
include that into the system
to be able to use that on several places, e.g. different form of
permutation representations as
Lehmer code (e.g.).

Here is an example:

(101) -> x

           +-+
   (101)  \|2
                    Type:
SimpleAlgebraicExtension(Integer,UnivariatePolynomial(x,Integer),x^2+(-2))
(102) -> x+3

           +-+
   (102)  \|2  + 3
                    Type:
SimpleAlgebraicExtension(Integer,UnivariatePolynomial(x,Integer),x^2+(-2))
(103) -> (x+3)^2

             +-+
   (103)  6 \|2  + 11
                    Type:
SimpleAlgebraicExtension(Integer,UnivariatePolynomial(x,Integer),x^2+(-2))
(104) -> setOutputType("rel")$S

   (104)  "rel"
                                                                                
       
Type: String
(105) -> (x+3)^2

                        2
   (105)  6 ζ + 11  |  ζ  - 2  = 0
                    Type:
SimpleAlgebraicExtension(Integer,UnivariatePolynomial(x,Integer),x^2+(-2))
(106) -> setOutputType("poly")$S

   (106)  "poly"
                                                                                
       
Type: String
(107) -> (x+3)^2

   (107)  6 x + 11
                    Type:
SimpleAlgebraicExtension(Integer,UnivariatePolynomial(x,Integer),x^2+(-2))


Actually, I even suggest to use the nice "rel" variant as the standard.
Can we in general rely on
UTF greek symbols?

Here is the code of the Category.

-- Copyright (c) 2019 J. Grabmeier
-- All rights reserved.
-- version 1 25.03.2019

)abbrev category OUTTYPE OutputType

++ Author: J. Grabmeier
++ Date Created:
++ Date Last Updated:
++ Basic Functions:
++ Related Constructors:
++ Also See:
++ AMS Classifications:
++ Keywords:
++ References:
++ Description:
++   provides environment for user choosable output types of the objects.
OutputType(opT: List String): Category == with
  --operations
    outputType: () -> String
      ++ setOutputType changes the output type.
    setOutputType: String -> String
      ++ setOutputType changes the output type.
  add
    --if empty? opT then error "OutputType: Argument must be a non empty
list of strings."
    msg: OutputForm := commaSeparate [message(op) for op in opT]
    msg := blankSeparate [message "OutputType: Improper value, correct
values are", msg]
    referenceOutputType: Reference String := ref first opT
    outputType(): String == deref referenceOutputType
    setOutputType(st: String): String ==
      correctType? : Boolean := false
      lb : List Boolean := [st = tp for tp in opT]
      correctType? := correctType? or reduce(_or, lb)
      if correctType?
        then referenceOutputType := ref st
        else print msg
      st

-- 
Mit freundlichen Grüßen

Johannes Grabmeier

Prof. Dr. Johannes Grabmeier
Köckstraße 1, D-94469 Deggendorf
Tel. +49-(0)-991-2979584, Tel. +49-(0)-151-681-70756
Tel. +49-(0)-991-3615-141 (d),  Fax: +49-(0)-32224-192688


-- 
Mit freundlichen Grüßen

Johannes Grabmeier

Prof. Dr. Johannes Grabmeier
Köckstraße 1, D-94469 Deggendorf
Tel. +49-(0)-991-2979584, Tel. +49-(0)-151-681-70756
Tel. +49-(0)-991-3615-141 (d),  Fax: +49-(0)-32224-192688

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/22051c32-eea5-c3f8-6418-25397febdefc%40grabmeier.net.
For more options, visit https://groups.google.com/d/optout.

Reply via email to