On Wed, Aug 12, 2009 at 12:53 AM, Fredrik Johansson<fredrik.johans...@gmail.com> wrote: > > 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.
In Mathematica the Convert function simply raises a nice clean error when the units aren't compatible. I think the Sage function should behave similarly. 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 -~----------~----~----~----~------~----~------~--~---