On Wed, Aug 12, 2009 at 9:19 AM, William Stein<wst...@gmail.com> wrote:
>
> On Wed, Aug 12, 2009 at 12:11 AM, Fredrik
> Johansson<fredrik.johans...@gmail.com> wrote:
>>
>> On Wed, Aug 12, 2009 at 8:44 AM, William Stein<wst...@gmail.com> wrote:
>>>
>>> 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.
>>
>> +1 on this design.
>>
>> It's similar to what sympy does, except sympy always expands units to
>> multiples of base units.
>
> Sage definitely will not always expand units to multiples of base
> units.  Some backward people in the world like to work with miles and
> feet... :-)

Agreed. Even in the metric parts of the world, non-SI units are
standard in fields like particle physics and astronomy.

On a related note, it would be handy to have a function that
automatically converts a given quantity to the simplest possible unit:
for example kg*m/s^2 -> N and kg*m/(A*s^3) -> V/m.

Of course, the "simplest possible unit" isn't uniquely defined, so
such a function probably requires additional parameters. You have to
decide on the set of base units, and derived units are not unique (for
example V/m = N/C).

It would perhaps be sufficient if convert accepts partial units so
that (kg*m/(A*s^3)).convert(V) -> V/m, but I'd expect convert to raise
an exception when given incompatible units, so it's not quite the same
thing.

> That said, I would be fine with Sage having a mode where it could
> always expand to base units -- that's massively easier to implement
> anyways.


Fredrik

--~--~---------~--~----~------------~-------~--~----~
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