login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Edit detail for #299 MachineFloat is not a FIeld revision 2 of 2

1 2
Editor: kratt6
Time: 2007/12/28 13:41:07 GMT-8
Note:

added:

From kratt6 Fri Dec 28 13:41:07 -0800 2007
From: kratt6
Date: Fri, 28 Dec 2007 13:41:07 -0800
Subject: 
Message-ID: <20071228134107-0800@axiom-wiki.newsynthesis.org>

Category: Axiom Mathematics => Axiom Library 


Submitted by : (unknown) at: 2007-11-17T22:23:08-08:00 (16 years ago)
Name :
Axiom Version :
Category : Severity : Status :
Optional subject :  
Optional comment :

axiom
F := MachineFloat

\label{eq1}\hbox{\axiomType{MachineFloat}\ }(1)
Type: Domain
axiom
a: F := -0.12345

\label{eq2}-{0.12345}(2)
Type: MachineFloat
axiom
b: F := -1234567890.0

\label{eq3}-{1234567890.0}(3)
Type: MachineFloat
axiom
c: F := 1234567890.12345

\label{eq4}1234567890.12345(4)
Type: MachineFloat
axiom
(a+b)+c

\label{eq5}-{0.2384185791015625 E - 6}(5)
Type: MachineFloat
axiom
a+(b+c)

\label{eq6}-{0.1976013183496717 E - 6}(6)
Type: MachineFloat
axiom
F has Field

\label{eq7} \mbox{\rm true} (7)
Type: Boolean

MachineFloat? clearly doesn't form a (mathematical) field as the above code demonstrates (and we all know).

DoubleFloat? and Float too --greg, Thu, 22 Jun 2006 09:18:32 -0500 reply
axiom
)cl all
All user variables and function definitions have been cleared. F := Float

\label{eq8}\hbox{\axiomType{Float}\ }(8)
Type: Domain
axiom
digits()

\label{eq9}20(9)
Type: PositiveInteger
axiom
a: F := -0.12345

\label{eq10}-{0.12345}(10)
Type: Float
axiom
b: F := -1234567890.0

\label{eq11}-{1234567890.0}(11)
Type: Float
axiom
c: F := 1234567890.12345

\label{eq12}1234567890.12345(12)
Type: Float
axiom
(a+b)+c

\label{eq13}0.0(13)
Type: Float
axiom
a+(b+c)

\label{eq14}-{0.861473381 E - 12}(14)
Type: Float
axiom
F has Field

\label{eq15} \mbox{\rm true} (15)
Type: Boolean

Axiom is not very strict... --kratt6, Thu, 22 Jun 2006 09:39:26 -0500 reply
Unfortunately, Axiom is not very strict with these things, although it should be, I believe. Some examples:

  • in Axiom, every field has the attribute canonicalUnitNormal.

In ATTREG.SPAD, we find:

  canonicalUnitNormal
    ++ \spad{canonicalUnitNormal} is true if we can choose a canonical
    ++ representative for each class of associate elements, that is
    ++ \spad{associates?(a,b)} returns true if and only if 
    ++ \spad{unitCanonical(a) = unitCanonical(b)}.

However, I suspect, this cannot be done in every field.

  • the domain EXPR is a field, although it is (I think) meant to allow arbitrary functions to be expressed, for example \chi(x<0), which does not have an inverse, I'd say.

In the documentation of MuPAD?, they say that (their) expression domain is a field for "convenience". Maybe this is related to the above.

In any case, we certainly cannot decide whether an element is zero or not.

Martin

Category: Axiom Mathematics => Axiom Library