2019-02-01から1ヶ月間の記事一覧

完全精度 expf 関数の作り方

C言語では、expf関数などの超越関数の精度は一切保証されないことになっています*1。 そうは言っても、数学的な結果に近い結果が返ってくることが、常識的に信じられています。 数学的な結果に最も近いfloatやdoubleが返ってくることを、完全精度(丸め誤差0…

C++におけるinline指定子の誤解

C++にはinline指定子があります。しかし、このinline指定子は、その名前から誤解されがちです。 (誤解)inline指定子を付けると、その関数はインライン展開される これは誤解であり、正しくありません。正しくは、以下のような意味になります。 inline指定子…

いろいろなボードゲームの複雑性クラスとその直感的説明

いろいろなボードゲームの複雑性クラスは語られることはありますが、多くの場合直観的説明がなく、論文を読むしかない状況にありました。調べたことをまとめておきます。 チューリングマシンの機能 決定性チューリングマシン 普通のコンピュータのことだと思…

DAGのトポロジカルソートのうち最適なものを見つけたい

DAG (Directed acyclic graph) のトポロジカルソートは一般にΟ(V!)通りありますが、その中で特定の評価関数を最小にするものを見つけたい、という問題群を考えています。 最適化コンパイラを作るときに出てきた問題やコードゴルフに関連する問題も含まれてい…