拡大縮小(3)
のを除けるのは簡単だ。両辺を倍してやればいい。
そうするとになる。
これで、を倍した値が得られるのだ。
ということは、毎ループを加算していって、転送するときにで割れば、が求まるということだ。
int big_sx = 0; int dx = 0; while( true ){ if( dx >= dw) break; dst[ dx ] = src[ big_sx / dw ]; dx++; big_sx += sw; // 毎ループ sw を加算する }
つまり、のスケールを倍にした、ということになる。
こうすることによって、転送する時以外は全て、整数で演算を行うことが出来るようになる。
あとは除算の部分をどうにかするだけだ。