diff --git a/output/main-opt-final.pdf b/output/main-opt-final.pdf new file mode 100644 index 0000000..489ce49 Binary files /dev/null and b/output/main-opt-final.pdf differ diff --git a/output/main.pdf b/output/main.pdf index 6826c8a..80e6154 100644 Binary files a/output/main.pdf and b/output/main.pdf differ diff --git a/section/a3.tex b/section/a3.tex index b1d3347..5be5939 100644 --- a/section/a3.tex +++ b/section/a3.tex @@ -15,13 +15,14 @@ \subsection{考察} 上記のコードリストは浮動少数点数の演算・変数格納時の誤差を考慮していない。 -考慮する場合は\texttt{float.h}内の\texttt{DBL\_MIN}や\texttt{DBL\_EPSILON}を用いた判別処理が必要である\cite{cppref_float}。 +考慮する場合は\texttt{float.h}内の\texttt{DBL\_MIN}、\texttt{DBL\_EPSILON}等やそれに準ずる方法を用いた判別処理が必要である\cite{cppref_float}。 \begin{lstlisting}[language=C,title={誤差を考慮した比較}] -#include #include -if (D == DBL_EPSILON * fmax(1, fmax(fabs(D), 0.0))) { +#define DBL_EPSILON 1.0E-16 + +if (fabs(D) <= DBL_EPSILON) { puts("superposition"); } \end{lstlisting}