axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Anybody up for a few basic Aldor questions?


From: C Y
Subject: [Axiom-developer] Anybody up for a few basic Aldor questions?
Date: Fri, 18 Aug 2006 17:12:46 -0700 (PDT)

Well, it's Friday night and I decided to take a first look at doing
some Dimension related stuff in Aldor.  So I don't flounder uselessly
about, could someone guide me to the right things to read to answer the
following?

1)  For anyone who has slogged through the old draft of the units
paper, you know some of the problems with defining the ideas of basic
and derived dimensions.  I may be a little off course here, but this is
what I'm thinking:

a)  A basic dimension cannot be multiplied and remain a basic dimension
- the result is always a derived dimension.

b)  A derived dimension is always defined in terms of one or more basic
definitions and uses the multiplicative operator both in its definition
and its exported function.

So we have two types of dimension - the BasicDimension, and the
DerivedDimension.  The multiplication rules are:

basic * basic -> derived
basic * derived -> derived
derived * derived -> derived

However, derived / derived MIGHT yield a basic dimension, e.g.
Force*Acceleration/Length -> Mass.  Is there a way to conditionalize
the type of the output?  (BTY, the dimension 1 is always assumed part
of the set of basic dimensions).

I'm also looking at a bit of a problem with definitions.  If I do
something like this for BasicDimension (I suppose I'm writing this
wrong):

BasicDimension: Abelian with {
  "*": (%,%) -> DerivedDimension
}
== add {
        Rep = Record(name : String, definition : String, system : String)
}

DerivedDimension is undefined at this stage, because (presumably) part
of the representation of DerivedDimension is going to have to be
defined in terms of some kind of Abelian Polynomial of Basic
Dimensions.  Am I thinking about this incorrectly?

Unfortunately the difficulties don't stop there - some DerivedDimension
in the SI system have no definitive definition in terms of
BasicDimensions, so some DerivedDimensions will have to have parts of
their structure undefined.  I'm not quite sure how to do this - I'm
floundering around:

DerivedDimension: Abelian with{
  "*": (%,%) -> %
}
==add {
  D == BasicDimension Polynomial
        Rep = Record(name: String, definitiverepresentation : D,
reducedrepresentation : D)
  x * y  == if (x::Rep).definitiverepresentation = "" then
[(x::Rep).name::DerivedDimension * (y::Rep).definitiverepresentation]
else if (x::Rep).definitiverepresentation = "" then
[(x::Rep).definitiverepresentation * (y::Rep).name::DerivedDimension]
else [(x::Rep).definitiverepresentation *
(y::Rep).definitiverepresentation]
} 

Anyway.  Any advice appreciated.

Thanks,
CY

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]