• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:math.h等について)

math.hについての疑問

Yanchの回答

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

環境がわからないので、いいかげんな事を書いてみます。 ・float版の sin関数、inline float __CRTDECL sin(_In_ float _X) は、float 版の sinf関数にインライン展開されている。 ・float版の sinf関数、inline float sinf(_In_ float _X) は、double版の sin関数にインライン展開されている。 って、事でしょう。 そして、double版のsin関数は、上の2つとは別に用意してある。

devman
質問者

補足

環境はVisualStudio 2010 Pro(DreamSpark)で、 VC++のWin32コンソールアプリケーションです。

関連するQ&A

  • math.hに含まれる関数が使えない

    math.hヘッダーをインクルードして、sqrt()やcos()の関数を使おうとすると、関数sqrt()は定義されていませんとエラーが出て正常にコンパイルできません。 他のヘッダー(stdio.hやstring.hやstdlib.h)の関数は正常に使えてますので、パスの設定は問題ないと思うのですが…… 解決方法はあるのでしょうか?宜しくお願いします。

  • 三角関数

    #include<math.h> を宣言していますが三角関数(sin(),cos(),tan())が使えません。これはどうしてでしょうか?

  • math.h

    C言語で以下のプログラムを打ちました #include <stdio.h> #include <math.h> main(){ printf("%f\n",sin(23.5)); } そして。下記の用に実行すると以下のようにエラーがでます。エラーからするにサイン関数が見つからない用な事いっているのですが、一体なん何んでしょう? ちなみに。OSはRed hut Linux 7.3です. % gcc -o sample sample.c /tmp/ccwod1zy.o: In function `main': /tmp/ccwod1zy.o(.text+0x17): undefined reference to `sin' collect2: ld returned 1 exit status

  • 学校の課題で

    sin,cos,tanを0~90度を出せっていわれたのですが #include <stdio.h> #include <math.h> main() { int N; float x; char *line="-------------------------------------\n"; printf(line); printf("%3s %5s %10s %13s \n", "kakudo", "sin","cos","tan"); for(N=0; N<=90; ++N) { x=N*3.14159265358979323846264338327950288/180; if(N%10==1) { printf(line); } if(N=90) { tan(N)= ; } printf("%3d %7.6f %10.6f %13.6f \n", N, sin(x), cos(x), tan(x)); } printf(line); } で出ません。 間違いは if(N=90){tan(N)= ;} の部分なのですが、どうすれば出せますか?

  • 三角関数の導関数

    いつもお世話になっています。 三角関数の導関数のところで  lim{sin(x+h) - sin(x)}/h = lim{2cos(x+h/2)sin(h/2)}/h = lim{cos(x+h/2)sin(h/2)}/(h/2) のように変形して、h→0 のとき  cos(x+h/2) → cosx  sin(h/2)/(h/2) → 1 として求めていました。 ここで質問なのですが  lim(○△) = lim○lim△ のようなことをしてもよいのでしょうか? あと h→0 のときに sinh/h → 1 となる証明は http://osaka.cool.ne.jp/economia/math/math4.pdf のページ等で図形を使うものを見つけて大体納得できたのですが、  cos(x) < sin(x)/x < 1 まできたところで、x→0 のとき cos(x)→1 とやっています。 最後のところですごく感覚的になった気がするのですが、 これは式で証明しなくてよいのでしょうか?

  • クラスは関数の寄せ集め??

    クラスという概念がいまいちわかりません。 例えばMathクラスにはmax,sin,cos,tanなどの関数がありますが、 ようはクラスって関数(メソッド)を集めたものと思います。 そのような理解であっておりますでしょうか? であるならば、わざわざクラスに分類しなくても、関数(メソッド)で良い様に思うのです。 何でわざわざnew演算子を使ってオブジェクトを作成してからでないと 関数が使えないようにしたのか、さっぱりわかりません。 関数でいいじゃないですか。と思うのです。 「キミはsin()関数を作ってね、キミはcos()関数を作ってね。」 と 「キミはMathクラスのsinメソッドを作ってね、キミはMathクラスのcosメソッド作ってね」 では意味的にはたいして違わないと思うのです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • SetPixel関数のmath.h

    WindowsXPのノートでVisualC++2008ExpressEditionを使っています。 SetPixel関数で円を描くプログラムで、math.hの問題だと思われる4つのエラーでコンパイルできません。 宣言は #include<windows.h> #include<math.h> ウィンドウプロシージャ内で switch (msg) { case WM_PAINT: hdc = BeginPaint(hWnd, &ps); for (i = a - r;i <= a + r; i++) { x = i; y = (int)sqrt(pow(r, 2) - pow(x - a, 2)) + b;←96行目 SetPixel(hdc, x, y, RGB(0, 0, 0)); y = (int)-sqrt(pow(r, 2) - pow(x - a, 2)) + b;←98行目 1>c:\documents and settings\REI\my documents\visual studio 2008\projects\setpixel01\setpixel01\setpixel01.cpp(96) : error C2668: 'pow' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照) 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): 'long double pow(long double,int)' の可能性があります。 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): または 'float pow(float,int)' 1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): または 'double pow(double,int)' 1> 引数リスト '(int, int)' を一致させようとしているとき 同じ内容のエラーが96行目なのが2回、98行目なのが2回出ます。math.hを編集すればいいんでしょうか?gccならコマンドラインから-lmでいいかもしれないんですが。自分の入力ミスはないと思います。 どなたかお分かりになる方、教えていただけないでしょうかm(_ _)m

  • マクローリン近似式の求め方を教えてください。

    マクローリン近似式をe,sin,cos,loge(1+x),x/(1-x)の2乗(後二者の場合絶対値が1より小さいとき)について導出し、近似値を求めよ。という問題がよくわからないので、良かったら教えてください。

  • sinのマクローリン展開

    再帰的関数定義とsin(x)のマクローリン展開の初めの10項を用いてsin(x)の近似値を出力するプログラムを作成せよ。 という問題で、マクローリン展開は分るのですがプログラムに出来ません…。 関数まで習っていて、配列などはまだ習っていないのですが、 どうやれば良いのかどなたか教えてください_| ̄|○

  • 微積分、マクローリン展開

    考え方、解き方を教えて下さい。 (1)sin (x) に n=5 としたときのマクローリンの    定理を適用せよ。 Ans. x - (1/6)x^3 + (cosθx /120)*x^5 x - (1/6)x^3 +......というところまでは分かるのですが、余剰項Rnの求め方分かりません。 f(n) (x) = ~cosθxが出てくるのですが~の部分が分かりません。 (1, 5, ....回微分の時はcos(x) 、3, 7,...回微分のときは-cos(x)) (2)sin 0.5の近似値、誤差の限界を求めよ。 近似値は当てはめるだけなのですが,誤差の限界の求め方が分かりません。