2023-08-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>…