File Coverage

blib/lib/Class/Measure/Scientific/FX_992vb.pm
Criterion Covered Total %
statement 43 43 100.0
branch 4 4 100.0
condition 3 3 100.0
subroutine 14 14 100.0
pod 2 2 100.0
total 66 66 100.0


line stmt bran cond sub pod time code
1             # -*- cperl; cperl-indent-level: 4 -*-
2             # Copyright (C) 2020-2021, Roland van Ipenburg
3             package Class::Measure::Scientific::FX_992vb v0.0.7;
4 18     18   148001 use Moose;
  18         9031033  
  18         145  
5 18     18   153936 use MooseX::NonMoose;
  18         20547  
  18         83  
6 18     18   1347226 use List::MoreUtils qw(uniq);
  18         52  
  18         194  
7             extends
8             'Class::Measure' => { '-version' => 0.08 },
9             'Moose::Object';
10              
11             #use Log::Log4perl qw(:resurrect :easy get_logger);
12              
13 18     18   14111 use utf8;
  18         46  
  18         154  
14 18     18   815 use 5.016000;
  18         75  
15              
16 18     18   11421 use Readonly;
  18         75002  
  18         32215  
17             ## no critic (ProhibitCallsToUnexportedSubs)
18             Readonly::Scalar my $EMPTY => q{};
19             Readonly::Scalar my $SEP => q{,};
20             Readonly::Scalar my $PREFIX => q{C};
21             Readonly::Scalar my $CODE => q{CODE};
22              
23             Readonly::Scalar my $AM2 => q{Am2};
24             Readonly::Scalar my $AM2PJS => q{Am2pJs};
25             Readonly::Scalar my $AMPERE => q{A};
26             Readonly::Scalar my $APM => q{Apm};
27             Readonly::Scalar my $BQ => q{Bq};
28             Readonly::Scalar my $CDPM2 => q{cdpm2};
29             Readonly::Scalar my $CELSIUS => q{C};
30             Readonly::Scalar my $CM => q{Cm};
31             Readonly::Scalar my $CM2PV => q{Cm2pV};
32             Readonly::Scalar my $COULOMB => q{C};
33             Readonly::Scalar my $CPKG => q{Cpkg};
34             Readonly::Scalar my $CPM => q{Cpmol};
35             Readonly::Scalar my $CPM2 => q{Cpm2};
36             Readonly::Scalar my $FAHRENHEIT => q{F};
37             Readonly::Scalar my $FARAD => q{f};
38             Readonly::Scalar my $FPM => q{Fpm};
39             Readonly::Scalar my $HPM => q{Hpm};
40             Readonly::Scalar my $JOULE => q{J};
41             Readonly::Scalar my $JPK => q{JpK};
42             Readonly::Scalar my $JPKG => q{Jpkg};
43             Readonly::Scalar my $JPKGK => q{JpkgK};
44             Readonly::Scalar my $JPMOLK => q{JpmolK};
45             Readonly::Scalar my $JS => q{Js};
46             Readonly::Scalar my $KELVIN => q{K};
47             Readonly::Scalar my $KG => q{kg};
48             Readonly::Scalar my $KGPM => q{kgpm};
49             Readonly::Scalar my $M2 => q{m2};
50             Readonly::Scalar my $M3 => q{m3};
51             Readonly::Scalar my $M3PMOL => q{m3pmol};
52             Readonly::Scalar my $METER => q{m};
53             Readonly::Scalar my $MK => q{mK};
54             Readonly::Scalar my $MPS => q{mps};
55             Readonly::Scalar my $MPS2 => q{mps2};
56             Readonly::Scalar my $NEWTON => q{N};
57             Readonly::Scalar my $NM2PKG2 => q{Nm2pkg2};
58             Readonly::Scalar my $PA => q{pa};
59             Readonly::Scalar my $PM => q{pm};
60             Readonly::Scalar my $PMOL => q{pmol};
61             Readonly::Scalar my $RAD => q{rad};
62             Readonly::Scalar my $SECOND => q{s};
63             Readonly::Scalar my $SKIP => q{};
64             Readonly::Scalar my $VOLT => q{V};
65             Readonly::Scalar my $VPM => q{Vpm};
66             Readonly::Scalar my $WATT => q{W};
67             Readonly::Scalar my $WB => q{Wb};
68             Readonly::Scalar my $WM2 => q{Wm2};
69             Readonly::Scalar my $WPM2K4 => q{Wpm2K4};
70             Readonly::Hash my %IDX => (
71             'idx' => 0,
72             'unit' => 1,
73             'multiplier' => 3,
74             'base' => 4,
75             );
76             Readonly::Hash my %TYPES => (
77             'acceleration' => $MPS2,
78             'angle' => $RAD,
79             'area' => $M2,
80             'charge' => $COULOMB,
81             'displacement' => $CPM2,
82             'duration' => $SECOND,
83             'electrolysis' => $CPM,
84             'electromagnetic' => $JS,
85             'energy' => $JOULE,
86             'entropy' => $JPK,
87             'field_equation' => $NM2PKG2,
88             'flux' => $WB,
89             'force' => $NEWTON,
90             'gas' => $JPMOLK,
91             'gyromagnetic' => $AM2PJS,
92             'heat_capacity' => $JPKGK,
93             'isotropic' => $CM2PV,
94             'length' => $METER,
95             'linear_density' => $KGPM,
96             'luminance' => $CDPM2,
97             'magnetic' => $AM2,
98             'mass' => $KG,
99             'mixture' => $M3PMOL,
100             'power' => $WATT,
101             'pressure' => $PA,
102             'proportionality' => $PMOL,
103             'radiation' => $CPKG,
104             'radioactive' => $BQ,
105             'spectroscopic' => $PM,
106             'speed' => $MPS,
107             'susceptibility' => $CM,
108             'temperature' => $KELVIN,
109             'thermodynamic' => $JPKG,
110             'volume' => $M3,
111             'wavelength' => $WM2,
112             'wavenumber' => $MK,
113             );
114             Readonly::Array my @CONST => (
115             [ 1, q{deg}, q{degree (angle)}, 0.017_453_292_51, $RAD ],
116             [ 2, q{minute}, q{minute (angle)}, 2.908_882_086_66e-4, $RAD ],
117             [ 3, q{second}, q{second (angle)}, 4.848_136_811e-6, $RAD ],
118             [ 4, q{AU}, q{astronomical unit}, 149_597_870_000, $METER ],
119             [ 5, q{g}, q{acceleration of free fall}, 9.806_65, $MPS2 ],
120             [ 6, q{grade}, q{grade}, 0.015_707_963_26, $RAD ],
121             [ 7, q{kn}, q{knot}, 1852 / 3600, $MPS ],
122             [ 8, q{ly}, q{light year}, 9.460_53e15, $METER ],
123             [ 9, q{nmi}, q{nautical mile}, 1852, $METER ],
124             [ 10, q{pc}, q{parsec}, 3.085_677_57e16, $METER ],
125             [ 11, q{year}, q{tropical year}, 31_556_926, $SECOND ],
126             [ 12, q{acre}, q{acre}, 4_046.856_422_4, $M2 ],
127             [ 13, q{bbl}, q{barrel for petroleum}, 0.158_987_294_92, $M3 ],
128             [ 14, q{dry_barrel}, q{dry barrel}, 0.115_627_123_58, $M3 ],
129             [ 15, q{bushel_uk}, q{bushel}, 0.036_368_794_35, $M3 ],
130             [ 16, q{bu}, q{bushel}, 0.035_239_070_16, $M3 ],
131             [ 17, q{chain}, q{chain (surveyors)}, 79_200 / 3_937, $METER ],
132             [ 18, q{cu}, q{US cup}, 2.365_882_365e-4, $M3 ],
133             [ 19, q{pt_dry}, q{dry pint}, 5.506_104_713_58e-4, $M3 ],
134             [ 20, q{fathom}, q{fathom (surveyors)}, 7200 / 3937, $METER ],
135             [ 21, q{fbm}, q{board foot}, 2.359_737_216e-3, $M3 ],
136             [ 22, q{floz_uk}, q{fluid ounce UK}, 2.841_312_059_3e-5, $M3 ],
137             [ 23, q{floz_us}, q{fluid ounce US}, 2.957_352_956_25e-5, $M3 ],
138             [ 24, q{ft}, q{foot}, 0.304_8, $METER ],
139             [ 25, q{ft_us}, q{foot (surveyors = US)}, 1200 / 3937, $METER ],
140             [ 26, q{gal_uk}, q{gallon (United Kingdom)}, 4.546_099_294_88e-3, $M3 ],
141             [ 27, q{gal_us}, q{gallon (United States)}, 3.785_411_784e-3, $M3 ],
142             [ 28, q{in}, q{inch}, 0.025_4, $METER ],
143             [ 29, q{mil}, q{mil}, 2.54e-5, $METER ],
144             [ 30, q{mile}, q{mile (international)}, 1_609.344, $METER ],
145             [ 31, q{sm}, q{US statute mile}, 6_336_000 / 3_937, $METER ],
146             [ 32, q{mph}, q{miles per hour}, 0.447_04, $MPS ],
147             [ 33, q{pk}, q{peck}, 8.809_767_541_72e-3, $M3 ],
148             [ 34, q{pt_uk}, q{pint}, 5.682_624_118_6e-4, $M3 ],
149             [ 35, q{pt_us}, q{liquid pint}, 4.731_764_73e-4, $M3 ],
150             [ 36, q{tbsp}, q{tablespoon}, 1.478_676_478_13e-5, $M3 ],
151             [ 37, q{tsp}, q{teaspoon}, 4.928_921_593_75e-6, $M3 ],
152             [ 38, q{yd}, q{yard}, 0.914_4, $METER ],
153             [ 39, q{yd_us}, q{US yard}, 3_600 / 3_937, $METER ],
154             [ 40, q{at}, q{technical atmosphere}, 98_066.5, $PA ],
155             [ 41, q{atm}, q{standard atmosphere}, 101_325, $PA ],
156             [ 42, q{ct}, q{metric carat}, 2e-4, $KG ],
157             [ 43, q{D}, q{denier}, 50 / 450_000_000, $KGPM ],
158             [ 44, q{G}, q{gravitational constant}, 6.672e-11, $NM2PKG2 ],
159             [ 45, q{kgf}, q{kilogramforce}, 9.806_65, $NEWTON ],
160             [ 46, q{mH2O}, q{meter of water}, 9_806.65, $PA ],
161             [ 47, q{mmHg}, q{mm of mercury}, 101_325 / 760, $PA ],
162             [ 48, q{PS}, q{metric horsepower}, 735.49875, $WATT ],
163             [ 49, q{Torr}, q{Torr}, 101_325 / 760, $PA ],
164             [ 50, q{cwt_uk}, q{hundred-weight}, 50.802_345_44, $KG ],
165             [ 51, q{cwt_us}, q{hundred-weight}, 45.359_237, $KG ],
166             [ 52, q{ftlbf}, q{foot pound-force}, 1.355_817_948_33, $JOULE ],
167             [ 53, q{ftH2O}, q{foot of water}, 2_989.066_92, $PA ],
168             [ 54, q{gr}, q{grain}, 6.479_891e-5, $KG ],
169             [ 55, q{hp}, q{horsepower}, 745.699_871_582, $JOULE ],
170             [ 56, q{inH2O}, q{inch of water}, 249.088_91, $PA ],
171             [ 57, q{inHg}, q{inch of mercury}, 3_386.388_157_89, $PA ],
172             [ 58, q{lb}, q{pound}, 0.453_592_37, $KG ],
173             [ 59, q{lbf}, q{pound-force}, 4.448_221_615_26, $NEWTON ],
174             [ 60, q{lbt}, q{troy pound}, 0.373_241_721_6, $KG ],
175             [ 61, q{oz}, q{ounce}, 0.028_349_523_12, $KG ],
176             [ 62, q{ozt}, q{troy ounce}, 0.031_103_476_8, $KG ],
177             [ 63, q{pdl}, q{poundal}, 0.138_254_954_37, $NEWTON ],
178             [ 64, q{psi}, q{pounds per square inch}, 6_894.757_293_17, $PA ],
179             [ 65, q{slug}, q{slug}, 14.593_902_937_2, $KG ],
180             [ 66, q{ton_uk}, q{long ton}, 1_016.046_908_8, $KG ],
181             [ 67, q{ton_us}, q{short ton}, 907.184_74, $KG ],
182             [ 68, q{zC}, q{zero Celsius}, 273.15, $SKIP ],
183             [ 69, q{cal15}, q{15 degree calorie}, 4.185_5, $JOULE ],
184             [ 70, q{calit}, q{I.T. calorie}, 4.186_8, $JOULE ],
185             [ 71, q{calth}, q{thermo chemical calorie}, 4.184, $JOULE ],
186             [ 72, q{FK}, q{degree Fahrenheit}, 5 / 9, $SKIP ],
187             [ 73, q{zF}, q{zero Fahrenheit in Celsius}, -160 / 9, $SKIP ],
188             [ 74, q{BTU}, q{British thermal unit}, 1_055.055_852_62, $JOULE ],
189             [ 75, q{BTUlbR}, q{specific heat capacity}, 4_186.8, $JPKGK ],
190             [ 76, q{BTUh}, q{Btu per hour}, 0.293_071_070_17, $WATT ],
191             [ 77, q{BTUlb}, q{specific internal enegry}, 2_326, $JPKG ],
192             [ 78, q{therm}, q{therm}, 105_505_585.262, $JOULE ],
193             [ 79, q{eps0}, q{permittivity of vacuum}, 8.854_187_817_62e-12, $FPM ],
194             [ 80, q{mu0}, q{permeability of vacuum}, 1.256_637_061_44e-6, $HPM ],
195             [ 81, q{Cs}, q{G. electric capacitance}, 1.112_650_056_05e-12, $FARAD ],
196             [ 82, q{Ds}, q{G. electric flux density}, 2.654_418_729_44e-7, $CPM2 ],
197             [ 83, q{Es}, q{G. electric field strength}, 29_979.245_8, $VPM ],
198             [ 84, q{Is}, q{G. electric current}, 3.33564095198e-10, $AMPERE ],
199             [ 85, q{Oe}, q{Hs, G. magnetic field strength}, 79.5774715459, $APM ],
200             [ 86, q{Ps}, q{G. electric polarization}, 3.335_640_951_98e-6, $CPM2 ],
201             [ 87, q{Qs}, q{G. electric charge}, 3.335_640_951_98e-10, $COULOMB ],
202             [ 88, q{Vs}, q{G. electric potential}, 299.792458, $VOLT ],
203             [ 89, q{sigma}, q{Stefan-Boltzmann constant}, 5.67032e-8, $WPM2K4 ],
204             [ 90, q{c}, q{speed of light}, 299_792_458, $MPS ],
205             [ 91, q{c1}, q{first radiation constant}, 3.741_832e-16, $WM2 ],
206             [ 92, q{c2}, q{second radiation constant}, 0.014_387_86, $MK ],
207             [ 93, q{lam}, q{lambert}, 3_183.098_861_84, $CDPM2 ],
208             [ 94, q{flam}, q{footlambert}, 3.426_259_099_64, $CDPM2 ],
209             [ 95, q{dB}, q{decibel level difference}, 0.115_129_254_65, $SKIP ],
210             [ 96, q{Np}, q{neper level difference}, 8.685_889_638_07, $SKIP ],
211             [ 97, q{e}, q{elementary charge}, 1.602_189_2e-19, $COULOMB ],
212             [ 98, q{f}, q{Faraday constant}, 96_484.56, $CPM ],
213             [ 99, q{k}, q{Boltzmann constant}, 1.380_662e-23, $JPK ],
214             [ 100, q{Na}, q{Avogadro constant}, 6.022_045e23, $PMOL ],
215             [ 101, q{R}, q{molar gas constant}, 8.314_41, $JPMOLK ],
216             [ 102, q{Vm}, q{molar volume}, 0.02241383, $M3PMOL ],
217             [
218             103, q{alpha}, q{G. el. polarizability of molecule},
219             1.11265005605e-16, $CM2PV,
220             ],
221             [ 104, q{p}, q{mu, G. el. dipole of molecule}, 3.33564095198e-12, $CM ],
222             [ 105, q{a}, q{fine-structure constant}, 7.297_350_6e-3, $SKIP ],
223             [ 106, q{gammap}, q{gyromagnetic ratio of proton}, 267_519_870, $AM2PJS ],
224             [
225             107, q{gammapalt}, q{gyromagnetic ratio of proton in water},
226             267_513_010, $AM2PJS,
227             ],
228             [ 108, q{lambdacn}, q{Compton wavelength n}, 1.319_590_9e-15, $METER ],
229             [ 109, q{lambdacp}, q{Compton wavelength p}, 1.321_409_9e-15, $METER ],
230             [ 110, q{muB}, q{Bohr magneton}, 9.274_078e-24, $AM2 ],
231             [ 111, q{mue}, q{m. moment of electron}, 9.284_770_1e-24, $AM2 ],
232             [ 112, q{muN}, q{nuclear magneton}, 5.050_824e-27, $AM2 ],
233             [ 113, q{mup}, q{m. moment of proton}, 1.410_607_61e-26, $AM2 ],
234             [ 114, q{a0}, q{Bohr radius}, 5.291_770_6e-11, $METER ],
235             [ 115, q{eh}, q{Hartree energy}, 4.359_81e-18, $JOULE ],
236             [ 116, q{ev}, q{electronvolt}, 1.602_189_2e-19, $JOULE ],
237             [ 117, q{h}, q{Planck constant}, 6.626176e-34, $JS ],
238             [ 118, q{hbar}, q{Planck constant per 2 pi}, 1.0545887e-34, $JS ],
239             [ 119, q{m1h}, q{mass of hydrogen atom}, 1.673_559_4e-27, $KG ],
240             [ 120, q{me}, q{rest mass of electron}, 9.109_534e-31, $KG ],
241             [ 121, q{mn}, q{rest mass of neutron}, 1.674_954_3e-27, $KG ],
242             [ 122, q{mp}, q{rest mass of proton}, 1.672_648_5e-27, $KG ],
243             [ 123, q{Rinf}, q{Rydberg constant}, 10_973_731.77, $PM ],
244             [ 124, q{re}, q{electron radius}, 2.817_938e-15, $METER ],
245             [ 125, q{u}, q{atomic mass unit}, 1.660_565_5e-27, $KG ],
246             [ 126, q{Ci}, q{curie}, 37_000_000_000, $BQ ],
247             [ 127, q{R}, q{rontgen}, 2.58e-4, $CPKG ],
248             [ 128, q{phi0}, q{fluxiod quantum}, 2.067_850_6e-15, $WB ],
249             [
250             undef, $CELSIUS,
251             q{Celsius to Kelvin},
252             sub {
253             return shift() + Class::Measure::Scientific::FX_992vb::zC();
254             },
255             $KELVIN,
256             ],
257             [
258             undef,
259             $KELVIN,
260             q{Kelvin to Celsius},
261             sub {
262             return shift() - Class::Measure::Scientific::FX_992vb::zC();
263             },
264             $CELSIUS,
265             ],
266             [
267             undef,
268             $FAHRENHEIT,
269             q{Fahrenheit to Kelvin},
270             sub {
271             return Class::Measure::Scientific::FX_992vb::zC() +
272             ( ( shift() * Class::Measure::Scientific::FX_992vb::FK() ) +
273             Class::Measure::Scientific::FX_992vb::zF() );
274             },
275             $KELVIN,
276             ],
277             [
278             undef,
279             $KELVIN,
280             q{Kelvin to Fahrenheit},
281             sub {
282             return (
283             shift() - (
284             Class::Measure::Scientific::FX_992vb::zF() +
285             Class::Measure::Scientific::FX_992vb::zC()
286             )
287             ) /
288             Class::Measure::Scientific::FX_992vb::FK();
289             },
290             $FAHRENHEIT,
291             ],
292             );
293             Readonly::Scalar my $MAX => length grep { $_[ $IDX{'idx'} ] } @CONST;
294             Readonly::Hash my %LOG => (
295             'UNITS' => q{Registering units '%s'},
296             'CONST' => q{Contant %d is not available, there are only 128 constants},
297             );
298             ## use critic
299              
300             ## no critic qw(ProhibitCommentedOutCode)
301             ###l4p Log::Log4perl->easy_init($ERROR);
302             ###l4p my $log = get_logger();
303             ## use critic
304              
305             for my $type ( keys %TYPES ) {
306              
307             sub _nom {
308 648     648   1239 my $label = lc shift;
309 648         1206 $label =~ s{\s+}{_}msx;
310 648         2634 return $label;
311             }
312             ## no critic (ProhibitNoStrict)
313 18     18   220 no strict q{refs};
  18         49  
  18         3496  
314             ## use critic
315             *{ _nom($type) } = sub {
316 77     77   114639 new(@_);
317             };
318             }
319              
320             my @units = ();
321             my @convs = ();
322             for my $const (@CONST) {
323             my $base = ${$const}[ $IDX{'base'} ];
324             my $unit = ${$const}[ $IDX{'unit'} ];
325             my $multiplier = ${$const}[ $IDX{'multiplier'} ];
326             if ( $base ne $SKIP ) {
327             push @convs,
328             (
329             ( ref $multiplier eq $CODE )
330             ? ( $unit => $base, $multiplier )
331             : ( $unit => $multiplier, $base )
332             );
333             push @units, ( $unit, $base );
334             }
335             else {
336             ## no critic (ProhibitNoStrict)
337 18     18   166 no strict q{refs};
  18         62  
  18         4909  
338             ## use critic
339             *{$unit} = sub {
340 70     70   238 return $multiplier;
341             };
342             }
343             }
344              
345             sub CONST {
346 6     6 1 3986 my $idx = shift;
347 6         11 $idx--;
348 6 100 100     153 if ( exists $CONST[$idx] && defined $CONST[$idx][ $IDX{'idx'} ] ) {
349 3         98 return $CONST[$idx][ $IDX{'multiplier'} ];
350             }
351             else {
352             ###l4p $log->error( sprintf $LOG{'CONST'}, $idx + 1 );
353 3         96 return;
354             }
355             }
356              
357             sub new {
358 79     79 1 2396 my ( $class, $amount, $unit ) = @_;
359              
360 79         7735 @units = uniq(@units);
361              
362             # Register in the constructor because Class::Measure doesn't allow
363             # inheritance of registered data:
364             ###l4p $log->debug( sprintf $LOG{'UNITS'}, join $SEP, @units );
365 79 100       1194 if ( 0 == $class->units() ) {
366 17         468 $class->reg_units(@units);
367 17         35660 $class->reg_convs(@convs);
368             }
369              
370 79         55462 my $measure = $class->SUPER::new( $amount, $unit );
371             ## no critic (ProhibitHashBarewords)
372 79         1421 return $class->meta->new_object( __INSTANCE__ => $measure, $amount, $unit );
373             ## use critic
374             }
375              
376 18     18   153 no Moose;
  18         46  
  18         218  
377             __PACKAGE__->meta->make_immutable( 'inline_constructor' => 0 );
378              
379             1;
380              
381             __END__
382              
383             =begin stopwords
384              
385             Ipenburg JIS merchantability fx gradian poundal torr pdl inHg thermo ps BTUlbR
386             BTUlb muB magneton gammap gyromagnetic Rinf weber wavenumber luminance lambert
387             footlambert candela mol Vm polarizability Ds Neper thermochemical Bitbucket
388              
389             =end stopwords
390              
391             =head1 NAME
392              
393             Class::Measure::Scientific::FX_992vb - units of measurement like the CASIO fx-992vb
394              
395             =head1 VERSION
396              
397             This document describes Class::Measure::Scientific::FX_992vb C<v0.0.7>.
398              
399             =head1 SYNOPSIS
400              
401             use Class::Measure::Scientific::FX_992vb;
402             $m = Class::Measure::Scientific::FX_992vb->mass(1, 'u');
403             print $m->kg();
404              
405             =head1 DESCRIPTION
406              
407             Create, compare and convert units of measurement as the CASIO fx-992vb. This
408             has little to do with the CASIO fx-992vb itself, the hardware just provides a
409             stable curated scope of range and precision for the 128 constants used in this
410             module so it won't be endlessly updated with more units or more precise
411             constants.
412              
413             =head1 SUBROUTINES/METHODS
414              
415             =over 4
416              
417             =item C<Class::Measure::Scientific::FX_992vb-E<gt>new(1, 'inHg')>
418              
419             Constructs a new Class::Measure::Scientific::FX_992vb object. This is the same
420             type of object as the following list of specific objects, but the specific
421             objects might in the future be able to handle conflicting aliases for units
422             which the generic constructor can't.
423              
424             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>volume(1, 'cu');>
425              
426             Construct a L<volume|https://en.wikipedia.org/wiki/Volume> object. Unit must
427             be one of C<m3> for L<cubic meter|https://en.wikipedia.org/wiki/Cubic_metre>,
428             C<bbl> for L<barrel|https://en.wikipedia.org/wiki/Barrel_(unit)>,
429             C<dry_barrel> for L<dry barrel|https://en.wikipedia.org/wiki/Barrel_(unit)>,
430             C<bushel_uk> for L<UK bushel|https://en.wikipedia.org/wiki/Bushel>, C<bu> for
431             L<bushel|https://en.wikipedia.org/wiki/Bushel>, C<cu> for
432             L<cup|https://en.wikipedia.org/wiki/Cup_(unit)>, C<pt_dry> for L<dry
433             pint|https://en.wikipedia.org/wiki/Dry_measure>, C<fbm> for L<board
434             foot|https://en.wikipedia.org/wiki/Board_foot>, C<floz_uk> for L<UK fluid
435             ounce|https://en.wikipedia.org/wiki/Fluid_ounce>, C<floz_us> for L<US fluid
436             ounce|https://en.wikipedia.org/wiki/Fluid_ounce>, C<gal_uk> for L<UK
437             gallon|https://en.wikipedia.org/wiki/Gallon>, C<gal_us> for L<US
438             gallon|https://en.wikipedia.org/wiki/Gallon>, C<pk> for
439             L<peck|https://en.wikipedia.org/wiki/Peck>, C<pt_uk> for
440             L<pint|https://en.wikipedia.org/wiki/Pint>, C<pt_us> for L<liquid
441             pint|https://en.wikipedia.org/wiki/Pint>, C<tbsp> for
442             L<tablespoon|https://en.wikipedia.org/wiki/Tablespoon> or C<tsp> for
443             L<teaspoon|https://en.wikipedia.org/wiki/Teaspoon>.
444              
445             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>area(1, 'acre');>
446              
447             Construct an L<area|https://en.wikipedia.org/wiki/Area> object. Unit must be
448             C<m2> for L<square meter|https://en.wikipedia.org/wiki/Square_metre> or
449             C<acre> for L<acre|https://en.wikipedia.org/wiki/Acre>.
450              
451             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>length(1, 'fathom');>
452              
453             Construct a L<length|https://en.wikipedia.org/wiki/Length> object. Unit must
454             be one of C<m> for L<meter|https://en.wikipedia.org/wiki/Metre>, C<AU> for
455             L<astronomical unit|https://en.wikipedia.org/wiki/Astronomical_unit>, C<ly>
456             for L<light-year|https://en.wikipedia.org/wiki/Light-year>, C<nmi> for
457             L<Nautical mile|https://en.wikipedia.org/wiki/Nautical_mile>, C<pc> for
458             L<parsec|https://en.wikipedia.org/wiki/Parsec>, C<chain> for
459             L<chain|https://en.wikipedia.org/wiki/Chain_(unit)>, C<fathom> for
460             L<fathom|https://en.wikipedia.org/wiki/Fathom>, C<ft> for
461             L<foot|https://en.wikipedia.org/wiki/Foot_(unit)>, C<ft_us> for US surveyors
462             foot, C<in> for L<inch|https://en.wikipedia.org/wiki/Inch>, C<mil> for L<mil
463             (1/1000th inch)|https://en.wikipedia.org/wiki/Thousandth_of_an_inch>, C<mile>
464             for L<mile|https://en.wikipedia.org/wiki/Mile>, C<sm> for US statute miles,
465             C<yd> for L<yard|https://en.wikipedia.org/wiki/Yard>, C<yd_us> for US yard,
466             C<lambdacn> for L<Compton
467             wavelength|https://en.wikipedia.org/wiki/Compton_wavelength> of neutron,
468             C<lambdacp> for L<Compton
469             wavelength|https://en.wikipedia.org/wiki/Compton_wavelength> of proton, C<a0>
470             for L<Bohr radius|https://en.wikipedia.org/wiki/Bohr_radius> or C<re> for
471             L<electron radius|https://en.wikipedia.org/wiki/Classical_electron_radius>.
472              
473             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>duration(1, 'year');>
474              
475             Construct a duration object. Unit must be C<s> for
476             L<seconds|https://en.wikipedia.org/wiki/Second> or C<year> for L<tropical
477             year|https://en.wikipedia.org/wiki/Tropical_year>.
478              
479             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>speed(1, 'c');>
480              
481             Construct a L<speed|https://en.wikipedia.org/wiki/Speed> object. Unit must be
482             one of C<mps> for L<meter per
483             second|https://en.wikipedia.org/wiki/Metre_per_second>, C<mph> for L<miles per
484             hour|https://en.wikipedia.org/wiki/Miles_per_hour>, C<kn> for
485             L<knot|https://en.wikipedia.org/wiki/Knot_(unit)> or C<c> for the L<speed of
486             light|https://en.wikipedia.org/wiki/Speed_of_light>.
487              
488             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>acceleration(1, 'g');>
489              
490             Construct an L<acceleration|https://en.wikipedia.org/wiki/Acceleration>
491             object. Unit must be one of C<g> for L<acceleration of free
492             fall|https://en.wikipedia.org/wiki/Gravitational_acceleration> or C<mps2> for
493             L<meters per second
494             squared|https://en.wikipedia.org/wiki/Metre_per_second_squared>.
495              
496             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>angle(90, 'deg');>
497              
498             Construct an L<angle|https://en.wikipedia.org/wiki/Angle> object. Unit must be
499             one of C<rad> for L<radian|https://en.wikipedia.org/wiki/Radian>, C<deg> for
500             L<degree|https://en.wikipedia.org/wiki/Degree_(angle)>, C<minute> for L<minute
501             of arc|https://en.wikipedia.org/wiki/Minute_and_second_of_arc>, C<second> for
502             L<second of arc|https://en.wikipedia.org/wiki/Minute_and_second_of_arc> or
503             C<grade> for L<gradian|https://en.wikipedia.org/wiki/Gradian>.
504              
505             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>mass(1, 'u');>
506              
507             Construct a L<mass|https://en.wikipedia.org/wiki/Mass> object. Unit must be
508             one of C<kg> for L<kilogram|https://en.wikipedia.org/wiki/Kilogram>, C<ct> for
509             L<metric carat|https://en.wikipedia.org/wiki/Carat_(mass)>, C<cwt_uk> for L<UK
510             hundredweight|https://en.wikipedia.org/wiki/Hundredweight>, C<cwt_us> for US
511             hundred weight, C<gr> for L<grain|https://en.wikipedia.org/wiki/Grain_(unit)>,
512             C<lb> for L<pound|https://en.wikipedia.org/wiki/Pound_(mass)>, C<lbt> for troy
513             pound, C<oz> for L<ounce|https://en.wikipedia.org/wiki/Ounce>, C<ozt> for
514             L<troy ounce|https://en.wikipedia.org/wiki/Troy_weight>, C<slug> for
515             L<slug|https://en.wikipedia.org/wiki/Slug_(unit)>, C<ton_uk> for L<long
516             ton|https://en.wikipedia.org/wiki/Long_ton>, C<ton_us> for L<short
517             ton|https://en.wikipedia.org/wiki/Short_ton>, C<m1h> for L<mass of hydrogen
518             atom|https://en.wikipedia.org/wiki/Hydrogen_atom>, C<me> for mass of
519             L<electron|https://en.wikipedia.org/wiki/Electron>, C<mn> for mass of
520             L<neutron|https://en.wikipedia.org/wiki/Neutron>, C<mp> for mass of
521             L<proton|https://en.wikipedia.org/wiki/Proton> or C<u> for L<atomic mass
522             unit|https://en.wikipedia.org/wiki/Dalton_(unit)>.
523              
524             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>force(1, 'pdl');>
525              
526             Construct a L<force|https://en.wikipedia.org/wiki/Force> object. Unit must be
527             one of C<N> for L<Newton|https://en.wikipedia.org/wiki/Newton_(unit)>, C<kgf>
528             for L<kilogram-force|https://en.wikipedia.org/wiki/Kilogram-force>, C<lbf> for
529             L<pound-force|https://en.wikipedia.org/wiki/Pound_(force)> or C<pdl> for
530             L<poundal|https://en.wikipedia.org/wiki/Poundal>.
531              
532             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>pressure(1, 'inHg');>
533              
534             Construct a L<pressure|https://en.wikipedia.org/wiki/Pressure> object. Unit
535             must be one of C<pa> for
536             L<Pascal|https://en.wikipedia.org/wiki/Pascal_(unit)>, C<at> for L<technical
537             atmosphere|https://en.wikipedia.org/wiki/Kilogram-force_per_square_centimetre>,
538             C<atm> for L<standard
539             atmosphere|https://en.wikipedia.org/wiki/Standard_atmosphere_(unit)>, C<mH2O>
540             for L<meter of water|https://en.wikipedia.org/wiki/Centimetre_of_water>,
541             C<mmHg> for millimeter mercury, C<Torr> for
542             L<torr|https://en.wikipedia.org/wiki/Torr>, C<ftH2O> for foot of water, C<inH2O>
543             for L<inch of water|https://en.wikipedia.org/wiki/Inch_of_water>, C<inHg> for
544             L<inch of mercury|https://en.wikipedia.org/wiki/Inch_of_mercury> or C<psi> for
545             L<pounds per square
546             inch|https://en.wikipedia.org/wiki/Pounds_per_square_inch>.
547              
548             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>temperature(1, 'C');>
549              
550             Construct a L<temperature|https://en.wikipedia.org/wiki/Temperature> object.
551             Unit must be one of C<C> for degrees
552             L<Celsius|https://en.wikipedia.org/wiki/Celsius>, C<F> for degrees
553             L<Fahrenheit|https://en.wikipedia.org/wiki/Fahrenheit> or C<K> for
554             L<Kelvin|https://en.wikipedia.org/wiki/Kelvin>.
555              
556             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>energy(1, 'J');>
557              
558             Construct an L<energy|https://en.wikipedia.org/wiki/Energy> object. Unit must
559             be one of C<J> for L<Joule|https://en.wikipedia.org/wiki/Joule>, C<BTU> for
560             L<British thermal unit|https://en.wikipedia.org/wiki/British_thermal_unit>,
561             C<ftlbf> for L<foot-pound|https://en.wikipedia.org/wiki/Foot-pound_(energy)>,
562             C<hp> for L<horsepower|https://en.wikipedia.org/wiki/Horsepower>, C<cal15> for
563             L<15 degree calorie|https://en.wikipedia.org/wiki/Calorie>, C<calit> for
564             L<International calorie|https://en.wikipedia.org/wiki/Calorie> or C<calth> for
565             L<thermochemical calorie|https://en.wikipedia.org/wiki/Calorie>.
566              
567             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>power(1, 'ps');>
568              
569             Construct a L<power|https://en.wikipedia.org/wiki/Power_(physics)> object.
570             Unit must be one of C<W> for L<Watts|https://en.wikipedia.org/wiki/Watt>,
571             C<ps> for L<metric
572             horsepower|https://en.wikipedia.org/wiki/Horsepower#Metric_horsepower_(PS,_cv,_hk,_pk,_ks,_ch)>
573             or C<BTUh> for L<BTU per
574             hour|https://en.wikipedia.org/wiki/British_thermal_unit#As_a_unit_of_power>.
575              
576             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>linear_density(1, 'D');>
577              
578             Construct a L<linear density|https://en.wikipedia.org/wiki/Linear_density>
579             object. Unit must be one of C<D> for
580             L<Denier|https://en.wikipedia.org/wiki/Units_of_textile_measurement#Denier> or
581             C<kgpm> for kilogram per meter.
582              
583             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>field_equation(1, 'G');>
584              
585             Construct a L<field
586             equation|https://en.wikipedia.org/wiki/Einstein_field_equations> object. Unit
587             must be one of C<G> for L<gravitational
588             constant|https://en.wikipedia.org/wiki/Gravitational_constant> or C<Nm2pkg2>
589             for Newton meter squared per kilogram squared.
590              
591             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>heat_capacity(1,
592             'BTUlbR');>
593              
594             Construct a L<heat capacity|https://en.wikipedia.org/wiki/Heat_capacity>
595             object. Unit must be one of C<BTUlbR> (British thermal unit per pound
596             L<Rankine|https://en.wikipedia.org/wiki/Rankine_scale>) for L<specific heat
597             capacity|https://en.wikipedia.org/wiki/Specific_heat_capacity#English_(Imperial)_engineering_units>
598             or C<JpkgK> for Joule per kilogram Kelvin.
599              
600             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>thermodynamic(1,
601             'BTUlb');>
602              
603             Construct a L<thermodynamic|https://en.wikipedia.org/wiki/Thermodynamics>
604             object. Unit must be one of C<BTUlb> for L<specific internal
605             energy|https://en.wikipedia.org/wiki/Internal_energy> or C<Jpkg> for Joule per
606             kilogram.
607              
608             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>magnetic(1, 'muB');>
609              
610             Construct a L<magnetic object|https://en.wikipedia.org/wiki/Bohr_magneton>.
611             Unit must be one of C<muB> for L<Bohr
612             magneton|https://en.wikipedia.org/wiki/Bohr_magneton>, C<mue> for L<magnetic
613             moment of electron|https://en.wikipedia.org/wiki/Electron_magnetic_moment>,
614             C<muN> for L<nuclear
615             magneton|https://en.wikipedia.org/wiki/Neutron_magnetic_moment>, C<mup> for
616             L<magnetic moment of
617             proton|https://en.wikipedia.org/wiki/Proton_magnetic_moment> or C<Am2> for
618             Ampere meter squared.
619              
620             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>gyromagnetic(1, 'gammap');>
621              
622             Construct a L<gyromagnetic|https://en.wikipedia.org/wiki/Gyromagnetic_ratio>
623             object. Unit must be one of C<gammap> for gyromagnetic ratio of proton,
624             C<gammapalt> for gyromagnetic ratio of proton in water or C<Am2pJs> for Ampere
625             meter squared per Joule second.
626              
627             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>electromagnetic(1, 'h');>
628              
629             Construct a electromagnetic object. Unit must be one of
630             C<h> for L<Planck constant|https://en.wikipedia.org/wiki/Planck_constant>,
631             C<hbar> for Planck constant per 2 Pi or C<Js> for Joule second.
632              
633             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>spectroscopic(1,
634             'Rinf');>
635              
636             Construct a L<spectroscopic|https://en.wikipedia.org/wiki/Spectroscopy>
637             object. Unit must be one of C<Rinf> for L<Rydberg constant for heavy
638             atoms|https://en.wikipedia.org/wiki/Rydberg_constant> or C<pm> for per meter.
639              
640             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>radioactive(1, 'Ci');>
641              
642             Construct a L<radioactive|https://en.wikipedia.org/wiki/Radioactive_decay>
643             object. Unit must be one of C<Ci> for
644             L<Curie|https://en.wikipedia.org/wiki/Curie_(unit)> or C<Bq> for
645             L<becquerel|https://en.wikipedia.org/wiki/Becquerel>.
646              
647             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>radiation(1, 'R');>
648              
649             Construct a L<radiation|https://en.wikipedia.org/wiki/Ionizing_radiation>
650             object. Unit must be one of C<R> for
651             L<Rontgen|https://en.wikipedia.org/wiki/Roentgen_(unit)> or C<Cpkg> for
652             coulomb per kilogram.
653              
654             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>flux(1, 'phi0');>
655              
656             Construct a L<quantum
657             flux|https://en.wikipedia.org/wiki/Magnetic_flux_quantum> object. Unit must be
658             one of C<phi0> for L<magnetic flux
659             quantum|https://en.wikipedia.org/wiki/Magnetic_flux_quantum> or C<Wb> for
660             L<weber|https://en.wikipedia.org/wiki/Weber_(unit)>.
661              
662             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>wavelength(1, 'c1');>
663              
664             Construct a L<wavelength|https://en.wikipedia.org/wiki/Planck%27s_law> object.
665             Unit must be one of C<c1> for first radiation constant or C<Wm2> for Watt
666             meter squared.
667              
668             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>wavenumber(1, 'c2');>
669              
670             Construct a L<wavenumber|https://en.wikipedia.org/wiki/Planck%27s_law> object.
671             Unit must be one of C<c2> for second radiation constant or C<mK> for meter
672             Kelvin.
673              
674             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>luminance(1, 'lam');>
675              
676             Construct a L<luminance|https://en.wikipedia.org/wiki/Luminance> object. Unit
677             must be one of C<lam> for
678             L<lambert|https://en.wikipedia.org/wiki/Lambert_(unit)>, C<flam> for
679             L<footlambert|https://en.wikipedia.org/wiki/Foot-lambert> or C<cdpm2> for
680             L<candela per square
681             meter|https://en.wikipedia.org/wiki/Candela_per_square_metre>.
682              
683             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>charge(1, 'e');>
684              
685             Construct a L<charge|https://en.wikipedia.org/wiki/Electric_charge> object.
686             Unit must be one of C<e> for L<elementary
687             charge|https://en.wikipedia.org/wiki/Elementary_charge> or C<C> for
688             L<coulomb|https://en.wikipedia.org/wiki/Coulomb>.
689              
690             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>electrolysis(1, 'F');>
691              
692             Construct an L<electrolysis|https://en.wikipedia.org/wiki/Electrolysis>
693             object. Unit must be one of C<f> for L<Faraday
694             constant|https://en.wikipedia.org/wiki/Faraday_constant> (lowercase to avoid
695             conflict with Fahrenheit) or C<Cpmol> for coulombs per mole.
696              
697             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>entropy(1, 'k');>
698              
699             Construct an L<entropy|https://en.wikipedia.org/wiki/Entropy> object. Unit
700             must be one of C<k> for L<Boltzmann
701             constant|https://en.wikipedia.org/wiki/Boltzmann_constant> or C<JpK> for Joule
702             per Kelvin.
703              
704             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>proportionality(1,
705             'Na');>
706              
707             Construct a
708             L<proportionality|https://en.wikipedia.org/wiki/Proportionality_(mathematics)>
709             object. Unit must be one of C<Na> for L<Avogadro
710             constant|https://en.wikipedia.org/wiki/Avogadro_constant> or C<pmol> for per
711             mole.
712              
713             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>gas(1, 'R');>
714              
715             Construct a L<gas|https://en.wikipedia.org/wiki/Ideal_gas_law> object. Unit
716             must be one of C<R> for L<molar gas
717             constant|https://en.wikipedia.org/wiki/Gas_constant> or C<JpmolK> for Joule
718             per mole Kelvin.
719              
720             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>mixture(1, 'Vm');>
721              
722             Construct a L<mixture|https://en.wikipedia.org/wiki/Ideal_solution> object.
723             Unit must be one of C<Vm> for L<molar
724             volume|https://en.wikipedia.org/wiki/Molar_volume> or C<m3pmol> for cubic
725             meter per mole.
726              
727             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>isotropic(1, 'alpha');>
728              
729             Construct an L<isotropic|https://en.wikipedia.org/wiki/Polarizability> object.
730             Unit must be one of C<alpha> for polarizability of molecule or C<Cm2pV> for
731             coulomb meter squared per Volt.
732              
733             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>susceptibility(1, 'p');>
734              
735             Construct a
736             L<susceptibility|https://en.wikipedia.org/wiki/Electric_susceptibility>
737             object. Unit must be one of C<p> for dipole of molecule or C<Cm> for coulomb
738             meter.
739              
740             =item C<$f = Class::Measure::Scientific::FX_992vb-E<gt>displacement(1, 'Ds');>
741              
742             Construct a
743             L<displacement|https://en.wikipedia.org/wiki/Electric_displacement_field>
744             object. Unit must be one of C<Ds> for G. electric flux density, C<Ps> for G.
745             electric polarization or C<Cpm2> for coulomb per square meter.
746              
747             =item C<Class::Measure::Scientific::FX_992vb::CONST(1);>
748              
749             All constants are available as the class method C<CONST> which takes the index
750             of the constant as argument as number from 1 to 128. This is the way the
751             constants are recalled on the CASIO fx-992vb.
752              
753             =back
754              
755             =head1 CONFIGURATION AND ENVIRONMENT
756              
757             None.
758              
759             =head1 DEPENDENCIES
760              
761             =over 4
762              
763             =item * Perl 5.16
764              
765             =item * L<Moose>
766              
767             =item * L<MooseX::NonMoose>
768              
769             =item * L<Class::Measure> 0.08 or newer
770              
771             =item * L<List::MoreUtils>
772              
773             =back
774              
775             =head1 INCOMPATIBILITIES
776              
777             This module has the same incompatibilities as L<Class::Measure>.
778              
779             =head1 DIAGNOSTICS
780              
781             This module uses L<Log::Log4perl> for logging when resurrected.
782              
783             =head1 BUGS AND LIMITATIONS
784              
785             The values are based on the constants from the CASIO fx-992vb scientific
786             calculator from the 90s, which are based on JIS-Z-8202-1988 (Japan Industrial
787             Standards). These are not the latest standards and should not be used when
788             more accurate values than those displayed in a pocket calculator from that era
789             are expected. For example the L<2019 redefinition of the SI base
790             units|https://en.wikipedia.org/wiki/2019_redefinition_of_the_SI_base_units> is
791             not and won't be implemented in this module.
792              
793             =head2 Interval scales
794              
795             While the CASIO fx-992vb has the constants to convert between Celsius,
796             Fahrenheit and Kelvin - using zero Celsius in Kelvin, zero Fahrenheit in
797             Celsius and degree Fahrenheit in Kelvin/Celsius - Celsius and Fahrenheit are
798             only units on interval scales as opposed to Kelvin which has a defined
799             thermodynamic zero which makes it a unit on a ratio scale. This module does of
800             course convert directly between those scales, but for completeness the
801             constants used in those calculations can also be accessed as class methods.
802              
803             =over 4
804              
805             =item * Zero Celsius C<Class::Measure::Scientific::FX_992vb::zC()> as
806             I<273.15> Kelvin
807              
808             =item * Zero Fahrenheit C<Class::Measure::Scientific::FX_992vb::zF()> as
809             I<-160/9> Celsius
810              
811             =item * Fahrenheit Kelvin ratio C<Class::Measure::Scientific::FX_992vb::FK()>
812             as I<5/9>
813              
814             =back
815              
816             =head2 Dimensionless quantities
817              
818             Some constants are dimensionless quantities, which means they are independent
819             of the system of unit used and can't be used to convert between units so they
820             are useless in the functionality of this module. These dimensionless quantity
821             constants are listed here for completeness and are available as class methods.
822              
823             =over 4
824              
825             =item * L<Decibel|https://en.wikipedia.org/wiki/Decibel> level difference
826             C<Class::Measure::Scientific::FX_992vb::dB()> as I<0.11512925465>
827              
828             =item * L<Neper|https://en.wikipedia.org/wiki/Neper> level difference
829             C<Class::Measure::Scientific::FX_992vb::Np()> as I<8.68588963807>
830              
831             =item * L<Fine-structure
832             constant|https://en.wikipedia.org/wiki/Fine-structure_constant>
833             C<Class::Measure::Scientific::FX_992vb::a()> as I<7.2973506e-3>
834              
835             =back
836              
837             Please report any bugs or feature requests at
838             L<Bitbucket|
839             https://bitbucket.org/rolandvanipenburg/class-measure-scientific-fx_992vb/issues>.
840              
841             =head1 AUTHOR
842              
843             Roland van Ipenburg, E<lt>roland@rolandvanipenburg.comE<gt>
844              
845             =head1 LICENSE AND COPYRIGHT
846              
847             Copyright 2020-2021 by Roland van Ipenburg
848             This program is free software; you can redistribute it and/or modify
849             it under the GNU General Public License v3.0.
850              
851             =head1 DISCLAIMER OF WARRANTY
852              
853             BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
854             FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
855             OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
856             PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
857             EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
858             WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
859             ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
860             YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
861             NECESSARY SERVICING, REPAIR, OR CORRECTION.
862              
863             IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
864             WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
865             REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENSE, BE
866             LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
867             OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
868             THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
869             RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
870             FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
871             SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
872             SUCH DAMAGES.
873              
874             =cut