Changeset 15185 in project


Ignore:
Timestamp:
07/07/09 09:19:33 (12 years ago)
Author:
Ivan Raikov
Message:

exporting all prefixed units in unitconv

Location:
release/4/unitconv/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • release/4/unitconv/trunk/unitconv-eggdoc.scm

    r15183 r15185  
    99
    1010     (history
     11      (version "1.8" "Exporting all prefixed units; added info on information units [Joshua Griffith]")
    1112      (version "1.7" "Exporting the Rate quantity")
    1213      (version "1.6" "Exporting the IEC standard prefixes")
     
    125126        (p (tt "DIMS") " can be either one of the base quantities (see next section) "
    126127          " or a derivative quantity created by " (tt "define-quantity") ". ")))
     128
     129     (macro "(define-prefix-unit unit prefix . abbrevs)"
     130       (p "Defines a variable whose name is the concatenated " (tt "PREFIX") " and " (tt "UNIT")
     131          " and that holds a unit definition of the given unit and prefix. "))
    127132         
    128133  )
     
    168173             (tr (@ (class "heading")) (td (b "Other")))
    169174             (define-quantity    Frequency     (/ Unity Time))
     175             (define-quantity    Rate          (/ Information Time))
    170176      ))
    171177   )
    172178
    173   (subsection "Predefined Units"
    174       (table (table-section "SI Unit Prefixes")
    175              (tr (@ (class "heading")) (td (i "Name")) (td (i "Quantity")) (td (i "Factor")) )
    176              (define-unit yocto  Unity 1.0e-24)
    177              (define-unit zepto  Unity 1.0e-21)
    178              (define-unit atto   Unity 1.0e-18)
    179              (define-unit femto  Unity 1.0e-15)
    180              (define-unit pico   Unity 1.0e-12)
    181              (define-unit nano   Unity 1.0e-9)
    182              (define-unit micro  Unity 1.0e-6)
    183              (define-unit milli  Unity 1.0e-3)
    184              (define-unit centi  Unity 1.0e-2)
    185              (define-unit deci   Unity 1.0e-1)
    186              (define-unit deca   Unity  1.0e1)
    187              (define-unit hecto  Unity  1.0e2)
    188              (define-unit kilo   Unity  1.0e3)
    189              (define-unit mega   Unity  1.0e6)
    190              (define-unit giga   Unity  1.0e9)
    191              (define-unit tera   Unity  1.0e12)
    192              (define-unit peta   Unity  1.0e15)
    193              (define-unit exa    Unity  1.0e18)
    194              (define-unit zetta  Unity  1.0e21)
    195              (define-unit yotta  Unity  1.0e24)
     179(subsection "Predefined Units"
     180            (table
     181             (table-section "SI Unit Prefixes")
     182                   (tr (@ (class "heading")) (td (i "Name")) (td (i "Quantity")) (td (i "Factor")) )
     183                   (define-unit yocto  Unity 1.0e-24)
     184                   (define-unit zepto  Unity 1.0e-21)
     185                   (define-unit atto   Unity 1.0e-18)
     186                   (define-unit femto  Unity 1.0e-15)
     187                   (define-unit pico   Unity 1.0e-12)
     188                   (define-unit nano   Unity 1.0e-9)
     189                   (define-unit micro  Unity 1.0e-6)
     190                   (define-unit milli  Unity 1.0e-3)
     191                   (define-unit centi  Unity 1.0e-2)
     192                   (define-unit deci   Unity 1.0e-1)
     193                   (define-unit deca   Unity  1.0e1)
     194                   (define-unit hecto  Unity  1.0e2)
     195                   (define-unit kilo   Unity  1.0e3)
     196                   (define-unit mega   Unity  1.0e6)
     197                   (define-unit giga   Unity  1.0e9)
     198                   (define-unit tera   Unity  1.0e12)
     199                   (define-unit peta   Unity  1.0e15)
     200                   (define-unit exa    Unity  1.0e18)
     201                   (define-unit zetta  Unity  1.0e21)
     202                   (define-unit yotta  Unity  1.0e24)
     203           (table-section "IEC Standard Prefixes")
     204                   (define-unit kibi   Unity  1024)
     205                   (define-unit mebi   Unity  1048576)
     206                   (define-unit gibi   Unity  1073741824)
     207                   (define-unit tebi   Unity  1099511627776)
     208                   (define-unit pebi   Unity  1125899906842624)
     209                   (define-unit exbi   Unity  1152921504606846976)
     210                   (define-unit zebi   Unity  1180591620717411303424)
     211                   (define-unit yobi   Unity  1208925819614629174706176)
    196212             (table-section "Time Multiples")
    197213             (define-unit twelve Unity 12)
     
    267283             (table-section "Units of temperature")
    268284             (define-unit degK       Temperature  1.0       K)
     285             (table-section "Units of information")
     286             (define-unit bit            Information  1         b bits shannon shannons Sh)
     287             (define-unit byte       Information  8         B bytes)
     288             (define-unit nat        Information  1.44269504088896  nats nit nits nepit nepits)
     289             (define-unit ban        Information  3.32192809488736  bans hartley hartleys Hart Harts dit dits)
     290             (table-section "Units of information rate")
     291             (define-unit bits-per-second  Rate  (/ bit second)  bps)
     292             (define-unit bytes-per-second  Rate  (/ byte second)  Bps)
    269293             ))
    270294   )
     
    288312#(unit pound-force-per-square-inch (psi) [Pressure] 6894.75760251898)
    289313
    290 csi> (unit-convert pound-force-per-square-inch pascal 1850)
     314csi> (unit-convert psi Pa 1850)
    29131512755301.5646601
    292316
    293317;; Unit prefix definition
    294 csi> (define millimeter     (make-unit-prefix  milli meter mm millimeters))
    295 
    296 csi> (unit-convert inch millimeter 12)
     318csi> (define-unit-prefix  milli meter mm millimeters)
     319
     320csi> (unit-convert inch mm 12)
    297321304.8
    298322EOF
  • release/4/unitconv/trunk/unitconv.scm

    r15182 r15185  
    77(module unitconv
    88
    9         (unit-factor-eval
     9        (
     10
     11         unit-factor-eval
    1012         (define-quantity quantity-expr-eval)
    1113         (define-unit unit-factor-eval)
     14         define-unit-prefix
    1215         make-unit-prefix
    1316
     
    1821         quantity-int
    1922         make-unit
     23
    2024         unit?
    2125         unit-equal?
     
    108112
    109113         ;; Angles (dimensionless ratio)
    110          radian
    111          degree
     114         radian rad radians
     115         degree deg degrees
    112116
    113117         ;; Units of length
    114          meter
    115          inch
    116          foot
    117          angstrom
    118          parsec
    119          millimeter
    120          micrometer
    121          micron
     118         meter m meters
     119         inch in inches
     120         foot ft feet
     121         angstrom ang angstroms
     122         parsec parsecs
     123         millimeter mm millimeters
     124         micrometer um micron microns micrometer micrometers
    122125
    123126         ;; Units of area and volume
    124          square-meter
    125          square-inch
    126          square-micron
    127          square-millimeter
    128          cubic-meter
    129          liter
     127         square-meter m^2 m2 meter-squared meters-squared square-meters
     128         square-inch in^2 inch-squared inches-squared square-inches
     129         square-micron um^2 micrometer-squared micrometers-squared micron-squared microns-squared square-microns
     130         square-millimeter mm^2 millimeter-squared millimeters-squared square-millimeters
     131         cubic-meter m^3 meter-cubed meters-cubed cubic-meters
     132         liter L litre liters
    130133
    131134         ;; Units of mass
    132          kilogram
    133          gram
    134          milligram
    135          pound
    136          slug
    137          atomic-mass-unit
     135         kilogram kg kilograms
     136         gram g grams
     137         milligram mg milligrams
     138         pound lb pounds
     139         slug slugs
     140         atomic-mass-unit amu atomic-mass-units
    138141
    139142         ;; Units of time
    140          second
    141          hour
     143         second s seconds
     144         hour h hrs hours
    142145
    143146         ;; Units of acceleration
    144          meters-per-second-squared
     147         meters-per-second-squared m/s2 m/s^2 m/sec2 m/sec^2
    145148
    146149         ;; Units of frequency
    147          hertz
     150         hertz hz
    148151
    149152         ;; Units of force
    150          newton
    151          pound-force
     153         newton nt newtons
     154         pound-force lbf
    152155
    153156         ;; Units of power
    154          watt
    155          horsepower
     157         watt W watts
     158         horsepower hp
    156159
    157160         ;; Units of energy
    158          joule
    159          electron-volt
    160          kilowatt-hour
    161          calorie
    162          erg
    163          british-thermal-unit
     161         joule J joules
     162         electron-volt ev electron-volts
     163         kilowatt-hour kwh kilowatt-hours
     164         calorie cal calories
     165         erg ergs
     166         british-thermal-unit btu btus
    164167
    165168         ;; Units of current
    166          ampere
     169         ampere A amp amps amperes
    167170
    168171         ;; Units of electric charge
    169          coulomb
     172         coulomb C coulombs
    170173
    171174         ;; Units of electric potential
    172          volt
     175         volt V volts
    173176
    174177         ;; Units of resistance
    175          ohm
     178         ohm ohms
    176179
    177180         ;; Units of capacitance
    178          farad
    179          microfarad
    180          picofarad
     181         farad F farads
     182         microfarad uF microfarads
     183         picofarad pF picofarads
    181184
    182185         ;; Units of conductance
    183          siemens
     186         siemens S mho
    184187
    185188         ;; Units of inductance
    186          henry
    187          millihenry
    188          microhenry
     189         henry H
     190         millihenry mH
     191         microhenry uH
    189192
    190193         ;; Units of substance
    191          mole
     194         mole mol moles
    192195
    193196         ;; Units of density
     
    195198
    196199         ;; Units of concentration
    197          molarity
    198          parts-per-million
     200         molarity M mol/L
     201         parts-per-million ppm
    199202
    200203         ;; Units of temperature
    201          degK
     204         degK K
    202205
    203206         ;; Units of information quantity, evidence, and information entropy
    204207
    205208         ;; bit = log_2(p)     (Shannon)
    206          bit
     209         bit b bits shannon shannons Sh
    207210
    208211         ;; byte = 8 bits
    209          byte
     212         byte B bytes
    210213
    211214         ;; nat = log_e(p)     (Boulton and Wallace)
    212          nat
     215         nat nats nit nits nepit nepits
    213216
    214217         ;; ban = log_10(p)    (Hartley, Turing, and Good)
    215          ban
     218         ban bans hartley hartleys Hart Harts dit dits
    216219
    217220         ;; The deciban is the smallest weight of evidence discernible by a human
    218221         ;; deciban = 10*log_10(p)
    219          deciban
     222         deciban db decibans
    220223
    221224         ;; IEC standard prefixes
     
    230233
    231234         ;; bits
    232          kilobit
    233          megabit
    234          gigabit
    235          terabit
    236          petabit
    237          exabit
    238          zettabit
    239          yottabit
    240          kibibit
    241          mebibit
    242          gibibit
    243          tebibit
    244          pebibit
    245          exbibit
    246          zebibit
    247          yobibit
     235         kilobit kb kilobits
     236         megabit Mb megabits
     237         gigabit Gb gigabits
     238         terabit Tb terabits
     239         petabit  Pb petabits
     240         exabit   Eb exabits 
     241         zettabit Zb zettabits
     242         yottabit Yb yottabits
     243         kibibit  Kib kibibits
     244         mebibit  Mib mebibits
     245         gibibit  Gib gibibits
     246         tebibit  Tib tebibits
     247         pebibit  Pib pebibits
     248         exbibit  Eib exbibits
     249         zebibit  Zib zebibits
     250         yobibit  Yib yobibits
    248251
    249252         ;; bytes
    250          kilobyte
    251          megabyte
    252          gigabyte
    253          terabyte
    254          petabyte
    255          exabyte
    256          zettabyte
    257          yottabyte
    258          kibibyte
    259          mebibyte
    260          gibibyte
    261          tebibyte
    262          pebibyte
    263          exbibyte
    264          zebibyte
    265          yobibyte
     253         kilobyte   kB kilobytes
     254         megabyte   MB megabytes
     255         gigabyte   GB gigabytes
     256         terabyte   TB terabytes
     257         petabyte   PB petabytes
     258         exabyte    EB exabytes 
     259         zettabyte  ZB zettabytes
     260         yottabyte  YB yottabytes
     261         kibibyte   KiB kibibytes
     262         mebibyte   MiB mebibytes
     263         gibibyte   GiB gibibytes
     264         tebibyte   TiB tebibytes
     265         pebibyte   PiB pebibytes
     266         exbibyte   EiB exbibytes
     267         zebibyte   ZiB zebibytes
     268         yobibyte   YiB yobibytes
    266269
    267270         ;; bit rates
    268          bits-per-second
    269          kilobits-per-second
    270          megabits-per-second
    271          gigabits-per-second
    272          terabits-per-second
    273          petabits-per-second
    274          exabits-per-second
    275          zettabits-per-second
    276          yottabits-per-second
    277 
    278          ;; byte rates
    279          bytes-per-second
    280          kilobytes-per-second
    281          megabytes-per-second
    282          gigabytes-per-second
    283          terabytes-per-second
    284          petabytes-per-second
    285          exabytes-per-second
    286          zettabytes-per-second
    287          yottabytes-per-second
     271         bits-per-second       bps
     272         kilobits-per-second   kbps
     273         megabits-per-second   Mbps
     274         gigabits-per-second   Gbps
     275         terabits-per-second   Tbps
     276         petabits-per-second   Pbps
     277         exabits-per-second    Ebps
     278         zettabits-per-second  Zbps
     279         yottabits-per-second  Ybps
     280                                   
     281         ;; byte rates             
     282         bytes-per-second      Bps
     283         kilobytes-per-second  kBps
     284         megabytes-per-second  MBps
     285         gigabytes-per-second  GBps
     286         terabytes-per-second  TBps
     287         petabytes-per-second  PBps
     288         exabytes-per-second   EBps
     289         zettabytes-per-second ZBps
     290         yottabytes-per-second YBps
    288291         
    289292         )
     
    542545
    543546
     547(define-syntax define-unit
     548  (lambda (x r c)
     549    (let ((name (cadr x))
     550          (dims (caddr x))
     551          (factor (cadddr x))
     552          (abbrevs (cddddr x))
     553          (%define (r 'define))
     554          (%begin (r 'begin)))
     555      `(,%begin
     556        (,%define ,name (make-unit ',name ,dims (unit-factor-eval ,factor) ',abbrevs))
     557        ,@(map (lambda (abbrev) `(,%define ,abbrev ,name)) abbrevs)))))
     558
     559
     560(define-syntax define-unit-prefix
     561  (lambda (x r c)
     562    (let ((prefix  (cadr x))
     563          (unit    (caddr x))
     564          (abbrevs (cdddr x))
     565          (%define (r 'define))
     566          (%begin (r 'begin)))
     567      (let ((name (string->symbol (string-append (->string prefix) (->string unit)))))
     568        `(,%begin
     569          (,%define ,name (unit-prefix ,prefix ,unit ',abbrevs))
     570          ,@(map (lambda (abbrev) `(,%define ,abbrev ,name)) abbrevs))))))
     571
    544572;;
    545573;; Geometry
     
    638666(define-unit angstrom  Length 1.0e-10   ang angstroms)
    639667(define-unit parsec    Length 3.083e16  parsecs)
    640 (define millimeter     (make-unit-prefix  milli meter mm millimeters))
    641 (define micrometer     (make-unit-prefix  micro meter um micron microns micrometers))
    642 (define micron         micrometer)
     668(define-unit-prefix    milli meter mm millimeters)
     669(define-unit-prefix    micro meter um micron microns micrometers)
    643670
    644671;; Units of area and volume
     
    656683(define-unit kilogram     Mass  1.0       kg kilograms)
    657684(define-unit gram         Mass  1e-3      g grams)
    658 (define milligram         (make-unit-prefix  milli gram mg milligrams))
     685(define-unit-prefix       milli gram mg milligrams)
    659686(define-unit pound        Mass  (* gram 453.59237) lb pounds)
    660687(define-unit slug         Mass  (* pound 32.17405) slugs)
     
    704731;; Units of capacitance
    705732(define-unit farad Capacitance  (/ coulomb volt) F farads)
    706 (define microfarad (make-unit-prefix micro farad uF microfarads))
    707 (define picofarad  (make-unit-prefix pico farad pF picofarads))
     733(define-unit-prefix micro farad uF microfarads)
     734(define-unit-prefix pico farad pF picofarads)
    708735
    709736;; Units of conductance
     
    713740(define-unit henry Inductance  (/ (* meter meter kilogram)
    714741                                  (* ampere ampere second second)) H)
    715 (define millihenry (make-unit-prefix milli henry mH))
    716 (define microhenry (make-unit-prefix micro henry uH))
     742(define-unit-prefix milli henry mH)
     743(define-unit-prefix micro henry uH)
    717744
    718745;; Units of substance
     
    732759
    733760;; bit = log_2(p)     (Shannon)
    734 (define-unit bit      Information  1                 b bits
     761(define-unit bit      Information  1                 b bits 
    735762  shannon shannons Sh)
    736763
     
    754781
    755782;; bits
    756 (define kilobit   (make-unit-prefix kilo  bit   kb kilobits))
    757 (define megabit   (make-unit-prefix mega  bit   Mb megabits))
    758 (define gigabit   (make-unit-prefix giga  bit   Gb gigabits))
    759 (define terabit   (make-unit-prefix tera  bit   Tb terabits))
    760 (define petabit   (make-unit-prefix peta  bit   Pb petabits))
    761 (define exabit    (make-unit-prefix exa   bit   Eb exabits))
    762 (define zettabit  (make-unit-prefix zetta bit   Zb zettabits))
    763 (define yottabit  (make-unit-prefix yotta bit   Yb yottabits))
    764 (define kibibit   (make-unit-prefix kibi  bit   Kib kibibits))
    765 (define mebibit   (make-unit-prefix mebi  bit   Mib mebibits))
    766 (define gibibit   (make-unit-prefix gibi  bit   Gib gibibits))
    767 (define tebibit   (make-unit-prefix tebi  bit   Tib tebibits))
    768 (define pebibit   (make-unit-prefix pebi  bit   Pib pebibits))
    769 (define exbibit   (make-unit-prefix exbi  bit   Eib exbibits))
    770 (define zebibit   (make-unit-prefix zebi  bit   Zib zebibits))
    771 (define yobibit   (make-unit-prefix yobi  bit   Yib yobibits))
     783(define-unit-prefix kilo  bit   kb kilobits)
     784(define-unit-prefix mega  bit   Mb megabits)
     785(define-unit-prefix giga  bit   Gb gigabits)
     786(define-unit-prefix tera  bit   Tb terabits)
     787(define-unit-prefix peta  bit   Pb petabits)
     788(define-unit-prefix exa   bit   Eb exabits)
     789(define-unit-prefix zetta bit   Zb zettabits)
     790(define-unit-prefix yotta bit   Yb yottabits)
     791(define-unit-prefix kibi  bit   Kib kibibits)
     792(define-unit-prefix mebi  bit   Mib mebibits)
     793(define-unit-prefix gibi  bit   Gib gibibits)
     794(define-unit-prefix tebi  bit   Tib tebibits)
     795(define-unit-prefix pebi  bit   Pib pebibits)
     796(define-unit-prefix exbi  bit   Eib exbibits)
     797(define-unit-prefix zebi  bit   Zib zebibits)
     798(define-unit-prefix yobi  bit   Yib yobibits)
    772799
    773800;; bytes
    774 (define kilobyte  (make-unit-prefix kilo  byte  kB kilobytes))
    775 (define megabyte  (make-unit-prefix mega  byte  MB megabytes))
    776 (define gigabyte  (make-unit-prefix giga  byte  GB gigabytes))
    777 (define terabyte  (make-unit-prefix tera  byte  TB terabytes))
    778 (define petabyte  (make-unit-prefix peta  byte  PB petabytes))
    779 (define exabyte   (make-unit-prefix exa   byte  EB exabytes))
    780 (define zettabyte (make-unit-prefix zetta byte  ZB zettabytes))
    781 (define yottabyte (make-unit-prefix yotta byte  YB yottabytes))
    782 (define kibibyte  (make-unit-prefix kibi  byte  KiB kibibytes))
    783 (define mebibyte  (make-unit-prefix mebi  byte  MiB mebibytes))
    784 (define gibibyte  (make-unit-prefix gibi  byte  GiB gibibytes))
    785 (define tebibyte  (make-unit-prefix tebi  byte  TiB tebibytes))
    786 (define pebibyte  (make-unit-prefix pebi  byte  PiB pebibytes))
    787 (define exbibyte  (make-unit-prefix exbi  byte  EiB exbibytes))
    788 (define zebibyte  (make-unit-prefix zebi  byte  ZiB zebibytes))
    789 (define yobibyte  (make-unit-prefix yobi  byte  YiB yobibytes))
     801(define-unit-prefix kilo  byte  kB kilobytes)
     802(define-unit-prefix mega  byte  MB megabytes)
     803(define-unit-prefix giga  byte  GB gigabytes)
     804(define-unit-prefix tera  byte  TB terabytes)
     805(define-unit-prefix peta  byte  PB petabytes)
     806(define-unit-prefix exa   byte  EB exabytes)
     807(define-unit-prefix zetta byte  ZB zettabytes)
     808(define-unit-prefix yotta byte  YB yottabytes)
     809(define-unit-prefix kibi  byte  KiB kibibytes)
     810(define-unit-prefix mebi  byte  MiB mebibytes)
     811(define-unit-prefix gibi  byte  GiB gibibytes)
     812(define-unit-prefix tebi  byte  TiB tebibytes)
     813(define-unit-prefix pebi  byte  PiB pebibytes)
     814(define-unit-prefix exbi  byte  EiB exbibytes)
     815(define-unit-prefix zebi  byte  ZiB zebibytes)
     816(define-unit-prefix yobi  byte  YiB yobibytes)
    790817
    791818;; bit rates
Note: See TracChangeset for help on using the changeset viewer.