Hi

can anyone give an advice on how to adapt Quantities to let it be
compatible with SAGE? I don't know how SAGE modifies the way to
represent numbers, and why it does not comply with Quantities.

For example, how does SAGE generate an instance of
"sage.rings.integer.Integer"? I hope this can help me. Actually, I
wasn't able to understand how Quantities deals with numbers, because
it basically transform any python int or float multiplied by a
physical unit, into a numpy array (either a single element or a
vector) with unit "dimensionless". I think there would be nothing
wrong with continue using normal sage integers or float as
dimensionless, even though I don't know how could we manage an object
given by the multiplication of an integer and a physical unit: would
this become a "quantity" instance? This would be fast to implement,
because that's the way it is now. Nonetheless, this is not the way I
would like it to do, because it would cause the necessity to add in
quantity the way to deal with all the possible types in SAGE (also
symbolics, in future?).

Is there any chance to do something like putting the physical quantity
like a property of the existing numerical (and in future any other)
class? I'm just wondering if is there any good way to do this, and if
I would be able to try to work on that.

I've to admit, I'd like to be better in python programming, and to
have more time to work on it. Until now, with a simple one-line
modification, I has been able to let "quantities" accept the sum of
coherent physical quantities, but I didn't manage to get the
representation I was talking about on the previous post yet,
especially because the "quantities" package is not really intended
that way: the way I would have tried to produce something like that,
is by distinguishing the units (e.g. Volts, Amperes, meters, ecc) from
the multipliers (milli, micro, kilo, ecc) and then try to find a way
to effectively combine them (in the expected way, like using the
multipliers as a prefix to the unit: m+V = mV, centi+meter=cm, ecc).
This seems more logical to me.

Another option, is to try to write this from scratch, trying to derive
the most from others available packages out there (it's not really
that much of lines of code), but I would not prefer to produce ANOTHER
package about that! What do you think?
I would prefer to keep that package, and simply try to apply some
short differential patch to it to get a SAGE compatible version, but
I'm not sure if I'll be able to.

Thank you for your time

Maurizio

On 16 Mar, 19:29, Maurizio <maurizio.gran...@gmail.com> wrote:
> In fact my idea is a bit different, and I'll explain in a minute:
> provided that the system is SI, you should get the result as a
> multiplier (bigger than one) of the closest classic unit
> representation
> ex: meters -> nm - um - mm - m - km - ecc ecc
> ex:
>
> x1 = 10cm
> x2 = 1m
> x1 + x2 = 1.1m
>
> y1 = 1V (Volt)
> y2 = 0.5 V
> y1 - y2 = 500 mV
>
> z1 = 500 mA [milliAmperes]
> k = 3
> z1 * k = 1.5 A
>
> Does this looks reasonable? I find this very comfortable!
>
> Regarding imperial system, the same could be done, even though this is
> just a bit tougher because of the fractional multipliers, but the
> principle can stay the same.
>
> Two optional features could be very important, in my opinion:
> 1) locking one object unit representation to a certain order of
> magnitude and/or metric system
>
> ex:
> x1 = 1 cm
> x1.lock('cm')
> x2 = x1 + 1 m [x2 can inherit the lock property]
> x2 = 101 cm
> x2.lock('inches')
> x2 = 39.76 inches
> x2.unlock()
> x2 = 1.01 m
>
> PS: locking property could also be specified when instantiating an
> object
>
> 2) changing the standard metric system (imperial / SI / any other) so
> that by default each value is scaled as previously proposed
>
> Any comment?
>
> Thanks
>
> Maurizio
>
> On 16 Mar, 16:06, Robert Dodier <robert.dod...@gmail.com> wrote:
>
> > Maurizio wrote:
> > > Regarding the output of such expression you wrote, I agree that it
> > > should give a standard unit output for each physical quantity, so by
> > > presetting SI (or imperial, or anything else), it should give just
> > > meters (or feets, or anything else)...
>
> > I'm pretty sure that would cause more trouble than it's worth.
> > Whatever the standard, there could well be nonstandard combinations
> > such as centimeters per day or liters per kilometer, which should
> > be preserved as such. In the US, which is an important enough
> > audience to be accomodated in the design of a units package,
> > mixed-up units from different standards or no standards at all are
> > very common, and should be preserved as such.
> > And whatever the system or lack of it, it would be annoying to
> > change fractional or multiple units (inches, kilometers, etc) to
> > their base units (feet, meters, etc).
>
> > The point is to accomodate the user, who has a better idea about
> > what they want to accomplish than the package writer.
>
> > FWIW
>
> > Robert Dodier
>
>
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send 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