[過去ログ]
「数学」をプログラミングするには (1002レス)
「数学」をプログラミングするには http://mevius.5ch.net/test/read.cgi/tech/1710585705/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
105: デフォルトの名無しさん [] 2024/03/24(日) 20:59:19.43 ID:BUlt442E Visual Stduioで y = 2 * x + 1 の行の逆アセンブリを見てみると、 mov qword ptr [rbp + 68h], 1 mov rax, qword ptr [rbp + 68h] cmp rax, 3 jg TEST + 105h mov rax, qword ptr [rbp + 68h] imul rax, rax, 4 lea rdx, [X] add rdx, rax add rdx, 0FFFFFFFFFFFFFFFCh mov eax, dword ptr [rdx] imul eax, eax, 2 inc eax mov rdx, qword ptr [rbp + 68h] imul rdx, rdx, 4 lea rcx, [Y] add rcx, rdx add rcx, 0FFFFFFFFFFFFFFFCh mov dword ptr [rcx], eax mov eax, 1 add rax, qword ptr [rbp + 68h] mov qword ptr [rbp + 68h], rax jmp TEST + 0B7h というコードが生成されていて、中間配列なんて作成せず合成関数を1回だけ適用し、Cの for (i = 1; i <= 3; i++) y[i] = 2 * x[i] + 3; に相当する効率的な処理になっている。(add rdx, 0FFFFFFFFFFFFFFFCh を見ると、 配列の添字が1始まりなのは非効率なのかと思ってしまうが…) http://mevius.5ch.net/test/read.cgi/tech/1710585705/105
107: デフォルトの名無しさん [] 2024/03/24(日) 21:02:48.75 ID:BUlt442E >>105の訂正 (誤) for (i = 1; i <= 3; i++) y[i] = 2 * x[i] + 3; (正) for (i = 1; i <= 3; i++) y[i] = 2 * x[i] + 1; http://mevius.5ch.net/test/read.cgi/tech/1710585705/107
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.036s