2023-01-01から1年間の記事一覧

あなたの log 関数は何ですか?

プログラミング言語などで log が常用対数(底は10)なのか自然対数(底はe)なのかという問題です。 TL;NR 導入 本題 TL;NR ほとんどのプログラミング言語では log は自然対数、SQL はバラバラなので注意、Excel ワークシートでは常用対数 導入 は の逆関数で、…

atof の桁数限定高速版

atof をどうしても高速化したくて、桁数を限定すれば高速化できるのではないかと思い、整数部9桁、小数部9桁に限定したものを作ってみました。9桁というのは int や unsigned int で完全に表現できる最大の桁数です。なるべく整数で演算を行って速度を稼いで…

10 の整数乗

10 の整数乗を求める関数で、[-32, 31] 内の int n に対して高速なものを作りました。if ((np32 & ~63) == 0) のところですが、普通は if (0 コンパイルされるのに対し、前者は test (ビットand)と条件ジャンプの組1つで済みます。ちょっとでも速くしたかっ…

高速数字判定

isdigit が inline 展開されないので、ASCII の数字のみ判定する関数を作りました。 // <isdigit.h> #ifndef isdigit_h #define isdigit_h #include <stdint.h> //------------------------------------------------------------ // // 高速数字判定 // /// 高速数字判定のテーブ</stdint.h></isdigit.h>…

VC, CMAKE でアセンブラ リスティング ファイル出力

VC++ で書いたコードをチューニングしていて、単純なコードなのに遅いってことありますよね。 で、アセンブラ コードを見てみたくなったときに使用するのがこのコンパイル オプションです。/FA、/Fa (リスティング ファイル) | Microsoft Learnマシンコード…

ふるさと納税の限度額計算

去年分の確定申告(還付申告)が終わったので、今年のふるさと納税の計画を立てたい。 まずは 総務省 | ふるさと納税のしくみ | 税金の控除について を参照。 ここの③の式と③'の式が連立する金額がふるさと納税で損をしない限度額となるようだ。 すなわち (ふ…