Archived posting to the Leica Users Group, 2001/07/16
[Author Prev] [Author Next] [Thread Prev] [Thread Next] [Author Index] [Topic Index] [Home] [Search]
> From: "Mark E Davison" <dmark8@qwest.net>
> Kyle,
>
> That's simply wrong. The f stops go by powers of the square root of two: 1,
> sqrt(2) (= approx 1.4), 2, 2 sqrt(2) (= approx 2.8), 4, and so on. So f1.0
> is exactly one stop faster than f1.4.
>
> Mark Davison
all correct.
interestingly, when using exactly the sqrt of 2, and display sub-100 numbers
to 2 significant digits, you get some unfamiliar values, such as f5.7 and f91.
i don't think any factor will get you exactly the familiar sequence
(1 1.4 2 2.8 4 5.6 8 11 16 22 32 45 64 90 128)
after rounding. the value 1.4134 gives you both f23 (too high) and
f127 (too low), so it seems evident that no value for the factor
could yield the familiar sequence.
- -rei
~/testdir $ make ./fstop ;./fstop
g++ -o fstop -pedantic-errors -lkstat -lm fstop.cc
Using 1.4142136 as factor: 1 1.4 2 2.8 4 5.7 8 11 16 23 32 45 64 91 128
Using 1.4134 as factor: 1 1.4 2 2.8 4 5.6 8 11 16 23 32 45 64 90 127
~/testdir $ cat fstop.cc
#include <stream.h>
void
doEffStopz(double factor)
{
double start=1.0;
cout.precision(8);
cout << "Using " << factor << " as factor: ";
for(int i=0;i<15;i++,start*=factor)
{
if (start>100)
cout.precision(3);
else
cout.precision(2);
cout << start << " ";
}
cout << endl;
}
int
main(int argc, char * argv[])
{
doEffStopz(sqrt(2.0));
doEffStopz(1.4134);
}