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); }