On Tue, Aug 11, 2009 at 11:30 PM, Jason
Grout<jason-s...@creativetrax.com> wrote:
>
> William Stein wrote:
>> Hi,
>>
>> I just wanted to let people know that David Ackerman -- a UW student who
>> took my course on Sage last quarter -- is working (funded by NSF) on
>> creating a "units package" for Sage right _now_.  If anybody has any
>> pseudo-sage code that involves units that they wished work, please post
>> it to this thread. What do you want units to *do*?
>>
>
> Is he doing something from scratch or is he working from the packages
> that have come up from time to time here?

He is doing something from scratch.

I had planned to have him work on integrating some existing package,
but after evaluating that approach he said it didn't seem to make
sense (at least he has a lot of experience using Sage, since he took
my class).   I didn't have an opinion one way or the other, but we
decided to ask -- "what is a so called units package supposed to do
anyways" since I honestly couldn't really tell you.  I would use one
to convert between Fahrenheit and Celcius, and maybe dollars and euros
:-).   We google around and found that Matlab didn't seem to come with
a units package, but there were several third party packages -- anyway
Sage isn't much like Matlab so looking there seemed pointless.  Then
we looked at Mathematica's included units package and read all the
documentation and examples of it.    That was enlightening, and
suggested doing almost precisely what Robert Dodier keeps telling us
to do, which is make the different units just be symbolic variables,
plus have some extra table somewhere of conversions (where everything
is kept as exact fractions), and add a few functions to do
conversions.  If you read the Mathematica docs you'll see that *all*
their units package is is:

          * a function Convert to convert between units

          * a very big list of different standard units (e.g., Foot,
Mile, Meter Second, etc.), which are all literally just symbolic
variables.

          * ConvertTemperature (and 3 other convert style functions).

That's it.

The Sage units package will be similar, except we'll have more builtin
units than Mathematica, just to one up them.  For example, I think
they have the "information" unit of "nibble", but for some reason they
don't have bytes.  We will.  So you'll be able to do something like
this:

 sage: from units import mega, kilo, byte, second, giga, minute
 sage: n = 94959 * kilo*byte
 sage: n.convert(mega*byte)
 ? * mega*byte
  sage: (6 *giga*byte/minute).convert(mega*byte/second)
  ? * mega*byte/second

David's started by simply assembling a big table in a Sage worksheet
with data about all the different units and the conversion factors.
It would also be nice to have nice latex output recorded for each
unit.

The above doesn't sound too complicated or hard to write, but honestly
I can see myself using it all the time.  For example, David Harvey
kept telling me tonight about writing data to disk at a rate of 6
gigabytes/minute, and I would rather think about megabytes/second, and
the above little snippet would give that trivially.

-- William

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to