UnitConverter.st
changeset 2443 e64a7f2f3fb4
parent 2320 c7f52f534977
child 2444 6c4c6addc97a
equal deleted inserted replaced
2442:db061ff41012 2443:e64a7f2f3fb4
   219                                                                 [exEnd]
   219                                                                 [exEnd]
   220                                                                 [exBegin]
   220                                                                 [exBegin]
   221         Transcript showCR:
   221         Transcript showCR:
   222             (UnitConverter convert:1 from:#'a4H' to:#inch)   
   222             (UnitConverter convert:1 from:#'a4H' to:#inch)   
   223                                                                 [exEnd]
   223                                                                 [exEnd]
       
   224 
       
   225     the mass of a proton:
       
   226                                                                 [exBegin]
       
   227         Transcript showCR:
       
   228             (UnitConverter convert:1 from:#'proton' to:#eV)    
       
   229                                                                 [exEnd]
       
   230     the energy of a single proton in the LHC (as of 2010)
       
   231                                                                 [exBegin]
       
   232         Transcript showCR:
       
   233             (UnitConverter convert:7 from:#'TeV' to:#joule)   
       
   234                                                                 [exEnd]
   224 "
   235 "
   225 ! !
   236 ! !
   226 
   237 
   227 !UnitConverter class methodsFor:'initialization'!
   238 !UnitConverter class methodsFor:'initialization'!
   228 
   239 
   236     Constants := IdentityDictionary new.
   247     Constants := IdentityDictionary new.
   237 
   248 
   238     "/ ---------- velocity -------------
   249     "/ ---------- velocity -------------
   239 
   250 
   240     Constants at:#lightspeed   put:#(2.997925E8   #'m/s').
   251     Constants at:#lightspeed   put:#(2.997925E8   #'m/s').
       
   252     Constants at:#soundspeed   put:#(343          #'m/s').  "/ 20degC - AIR
   241 
   253 
   242 
   254 
   243     "/ -------------- length -------------
   255     "/ -------------- length -------------
   244 
   256 
   245     Aliases at:#km       put:#kilometer.
   257     Aliases at:#km       put:#kilometer.
   328 
   340 
   329     self addConversion:28.35     from:#ounce to:#gram.
   341     self addConversion:28.35     from:#ounce to:#gram.
   330     self addConversion:453.59237 from:#lb    to:#gram.
   342     self addConversion:453.59237 from:#lb    to:#gram.
   331     self addConversion:205       from:#carat to:#milligram.
   343     self addConversion:205       from:#carat to:#milligram.
   332 
   344 
       
   345     self addConversion:0.94      from:#proton to:#GeV.
       
   346 
   333     Aliases at:#oz put:#ounce.
   347     Aliases at:#oz put:#ounce.
   334     Aliases at:#lbs put:#lb.
   348     Aliases at:#lbs put:#lb.
   335 
   349 
   336     Aliases at:#gm put:#gram.
   350     Aliases at:#gm put:#gram.
   337     Aliases at:#kg put:#kilogram.
   351     Aliases at:#kg put:#kilogram.
   341     Aliases at:#cal     put:#calorie.
   355     Aliases at:#cal     put:#calorie.
   342     Aliases at:#nt      put:#newton.
   356     Aliases at:#nt      put:#newton.
   343     Aliases at:#joule   put:#'nt*m'.
   357     Aliases at:#joule   put:#'nt*m'.
   344     Aliases at:#J       put:#'joule'.
   358     Aliases at:#J       put:#'joule'.
   345     Aliases at:#N       put:#'newton'.
   359     Aliases at:#N       put:#'newton'.
       
   360     Aliases at:#eV      put:#'electronvolt'.
       
   361     Aliases at:#MeV     put:#'megaeV'.
       
   362     Aliases at:#GeV     put:#'gigaeV'.
       
   363     Aliases at:#TeV     put:#'teraeV'.
   346 
   364 
   347     Aliases at:#watt    put:#'J/s'.
   365     Aliases at:#watt    put:#'J/s'.
   348 
   366 
   349     self addConversion:4.1868 from:#calorie  to:#joule.
   367     self addConversion:4.1868 from:#calorie  to:#joule.
       
   368     self addConversion:1.60217653E-19 from:#electronvolt  to:#joule.
   350 
   369 
   351 
   370 
   352     "/ ---------------- cooking ---------------- 
   371     "/ ---------------- cooking ---------------- 
   353 
   372 
   354     self addConversion:4      from:#tablespoon   to:#fldr.
   373     self addConversion:4      from:#tablespoon   to:#fldr.
   356 
   375 
   357 
   376 
   358     "/ ---------------- temperature ---------------- 
   377     "/ ---------------- temperature ---------------- 
   359 
   378 
   360     self addConversion:[:d | d * 1.8 + 32] from:#celsius    to:#fahrenheit.
   379     self addConversion:[:d | d * 1.8 + 32] from:#celsius    to:#fahrenheit.
   361     self addConversion:[:f | f - 32 / 1.8] from:#fahrenheit to:#celsius.
   380     self addConversion:[:f | (f - 32) / 1.8] from:#fahrenheit to:#celsius.
   362 
   381 
   363     "
   382     "
   364      Conversions := nil.
   383      Conversions := nil.
   365      UnitConverter initializeConversions
   384      UnitConverter initializeConversions
   366     "
   385     "
   991 ! !
  1010 ! !
   992 
  1011 
   993 !UnitConverter class methodsFor:'documentation'!
  1012 !UnitConverter class methodsFor:'documentation'!
   994 
  1013 
   995 version
  1014 version
   996     ^ '$Header: /cvs/stx/stx/libbasic2/UnitConverter.st,v 1.36 2009-10-27 12:19:01 cg Exp $'
  1015     ^ '$Header: /cvs/stx/stx/libbasic2/UnitConverter.st,v 1.37 2010-04-18 12:14:41 cg Exp $'
   997 !
  1016 !
   998 
  1017 
   999 version_CVS
  1018 version_CVS
  1000     ^ '$Header: /cvs/stx/stx/libbasic2/UnitConverter.st,v 1.36 2009-10-27 12:19:01 cg Exp $'
  1019     ^ '$Header: /cvs/stx/stx/libbasic2/UnitConverter.st,v 1.37 2010-04-18 12:14:41 cg Exp $'
  1001 ! !
  1020 ! !