ceil(),round(),floor()関数の実行速度 - ページ 7

 
Andrey Kisselyov:

例として挙げてみましょう。
のビット数まで変えてしまうと、64ビットに切り替えて機械の精度が上がった場合、誤差で設定したよりもはるかに高い精度になるため、計算式が動かなくなります。

敬意を込めて。

P.S. 数値の範囲であなたの式が失敗する他のオプションがあるかもしれません。別のマシンに切り替えたり、コンパイラの変更、あなたが知らされていない、またはマシンの数字の表現を変更したとき、または端末の新しいバージョンをコンパイルするときに数の小数部分を カットすることから、常にエラーを調整する......何が変わるかわからないし、何度もエラーを書いて推測してIFをしたり苦しむのは良くないと思うのですが...。

考えるべきことはたくさんあると思います。


私はそうは思いません。計算式(y=(int)(x+0.9999999997);)は、精度を上げても動作しなくなることはなく、同じように動作します。従来通り、DBL_EPSILON (現在値: 0.000000000000022204460492503131) と 0.00000000000003 の間の数値の小数部の範囲でエラーが発生します。 DBL_EPSILON がゼロまで減少しても(もちろん減少しません)、範囲は現在の DBL_EPSILON のサイズ、つまり 2.2204460492503131e-016 で増加します。このような誤差範囲を無視することも可能だと思います。

また、そもそも「機械精度」とは何でしょうか。ダブルなどの標準的な精度のタイプがあります。あなたの理屈は通用しません。P.S.については何も言いません))怒らせるのが怖いんです。

敬意を込めて。

 
Nikolai Semko:

私はそうは思いません。計算式(y=(int)(x+0.9999999997);)は、精度を上げても動作しなくなることはなく、同じように動作します。従来通り、DBL_EPSILON (現在値: 0.000000000000022204460492503131) と 0.00000000000003 の間の数値の小数部の範囲でエラーが発生します。 DBL_EPSILON がゼロまで減少しても(もちろん、それはできません)、範囲は現在の DBL_EPSILON のサイズ、つまり 2.2204460492503131e-016 で増加します。このような誤差範囲を無視することも可能だと思います。

また、そもそも「機械精度」とは何でしょうか。ダブルなどの標準的な精度のタイプがあります。あなたの理屈は通用しません。P.S.については何も言いません))怒らせるのが怖いんです。

謹んで申し上げます。

市場での価格に適用すると、一般的に5〜6桁で精度を残すことができ、あなたが数学で働いていると、彼らはあなたの新しい高速計算が必要になります誰が、何を知らないので、あなたはそれが問題ではないに従って "愚かな行動の原則 "を適用する必要があります誰が、いつ関数が間違って計算されるその値を置くことができます。

自分を尊重すること。誰でも自分の顔に泥を塗ることはできる。失礼なことをして相手にその理由を与えることに意味があるのか? 人は皆、何かで進化している一方で、他のことは自分にとって面白くない、重要でないだけなのだ。
アセンブラと、コンパイラの後のコードがどうなるかについてのあなたの考え方の話なので、あなたにとって意味のありそうなフレーズをいくつか紹介しましょう。

プロセッサは各レジスタのビット数が限られているため、そのレジスタで加算や減算などの演算を行う場合、フラグの関係で厄介な点がある。
アセンブラを使ったことがある人なら、私たちの言っていることが理解できるはずです。
だから、あなたは別のモデルで同じ番号を使用してアセンブリ言語でコードを記述する場合、オーバーフローがあるかどうかプロセッサの異なるモデルでコマンドADDで教えて、一般的には、任意のレジスタに収まることができないと切り捨てられる、8ビット最後の世代から64ビットとより現在の世代とどのようにそれは将来(技術開発は非常にはかない、ちょうど40年経過し、我々はすでに代わりにランプ初期の80年代のマルチコアプロセッサを持って)変更できますか?

my respect
 
プロファイリングを開いて、コードのどこで実行が遅いかを確認 したほうがいいです。 ほとんどがループやさまざまなクエリーなどです。

敬意を込めて。
 
Nikolai Semko:

さて、皆さん、言いたいことはわかりました。特別にceil機能を変更してあげます。

この variant は variant:y=(int)(x+0.9999999997); より 25-50%遅いですが、最大限正しく、負の整数に対しても動作し、 ceil(x) より 3 倍速く なります。

というのも、あなたがたの主張はつまらないし、長い間アセンブラでプログラミングをしてきて、コンパイル後にコードがどうなるかを知っている私にとっては、チェックしなくても済むところにチェックを入れるのはやりすぎだからです。

パーソナリティに寄るということは、伝統的にメリットに関する議論が欠如していることを意味します。しかし、それでも私はあなたに質問します。100万回の丸めの時間を8ミリ秒から5ミリ秒や2ミリ秒にした理由は何ですか? そのような遅延もボトルネックになるとしたら、プロセッサの本当の負荷は何だったのでしょうか?そのようなニーズには遭遇していません。抽象的な、学術的な興味を引くようなことでしょうか。
 
Vladimir:
個人的なことを言うのは、伝統的に本質的な議論の欠如を意味します。

相手を貶めようとする、文化的な振る舞いの欠如と同様に、私もそう思います。

謹んで申し上げます。

 
Andrey Kisselyov:
信用できない "について、私はあなたの引数の評価を与えず、私はあなたを望むように、あなたのメリットを軽視しませんでした。 自分自身を尊重し、汚れにあなたの顔をこすることは、あなたの相手にそうする理由を与えるために、彼らの行動で失礼を求めているかどうか、誰でもできますか? 我々はすべて何かで開発されて、私たちはちょうど私たちに興味や無関係ではないことを持っています。
ウラジミール
パーソナリティを追求することは、伝統的にメリットに関する議論が不足していることを意味します。
アンドレイ・キセリョフ

対談相手を貶めようとする文化的な振る舞いの欠如もそうですが、私もそう思います。

うわー!確かに誰かを不快にさせたなら謝ります。私の発言に気分を害されたのでしょう。

ニコライ・セムコ

さて、名誉ある皆さん、決まりましたね。あなたのためだけに、ceil機能を変えています。

しかし、私自身は、平民でC言語の学生であるため、ナインとの変種を使うことにしています。あなたの主張はすべてオタク的だと考えているからです...。

ニコライ・セムコ

また、そもそも「機械精度」とは何でしょうか。ダブルなどの標準的な精度があります。あなたの理屈は通用しません。P.S.については何も言いません))怒らせるのが怖い。

まあ、その...想像力が豊かなんでしょうね。普通の雑談では、「人格への転嫁」「相手を貶めようとする」「長所をけなす」......といったことが見られる。

それとも、私が何かを見落として、どこかで良識の境界線を踏み外してしまったのでしょうか。

申し訳ないが、私はどうやら、あの追伸であなたが書いたことを理解するだけの知識と経験がないようだ。

アンドレイ・キセリョフ
P.S. 数式が数値の範囲で失敗する場合、他のバリエーションがあるかもしれません。別のマシンに切り替えたり、あなたが知らないコンパイラの変更、マシンの数値表現の変更新しいバージョンのターミナルでコンパイルするときに数値の小数部分をカットするなどの理由で常にエラーを調整する こと...。何が変わるかわからない、何度もエラーを書いて推測してIFをしたり苦しむのは良くないと思うのですが・・・。
どなたか、私が書いたことの意味を説明していただけるとありがたいのですが。
改めて、私の口調をお詫びします。私は常に、同僚との相互尊重と正しい行動を提唱しています。悪魔が気になる。
 
Vladimir:
100万回の丸め時間を8ミリ秒から5ミリ秒や2ミリ秒にした理由は何ですか? もし、その程度の遅れでもボトルネックになるのなら、プロセッサの本当の負担は何だったのでしょう?そのようなニーズには遭遇していません。もしかして、抽象的で学術的な興味があるもの?
アンドレイ・キセリョフ
プロファイリングを開いて、コードのどこが遅れている のかを確認したほうがいいですね。 ほとんどはループやさまざまなクエリーなどです。 数学関数は最速の部類に入るので、そこで何かをカットしようとするのはあまり賢明ではないと思います。
なぜ私が遅いと思うのかわからない。逆に、私のアルゴリズムが一番速いと思って います。私はスピード狂なんです。もちろん、このような丸め関数の置き換えを使っても、得られるものはごくわずかで、1パーセントの端数に過ぎません。しかし、この言葉通り、世間一般からはこれは、例えば航空機やロケット科学などでも同じことが言えます。強度を落とさずに軽量化を図るため、ボルトに至るまで全てに手を加えています。そのためか、理屈に反して、いまや飛行機は最も安全な交通手段となっている。
 
Nikolai Semko:

うわー!確かに誰かを不快にさせたなら謝ります。私の発言に気分を害されたのでしょう。

まあ、その...想像力が豊かなんでしょうね。単純な友好的な雑 談の中に、「個人化」「屈辱」「けなす」......といったものが見られる。

もし、あなたが友人を「嘲笑」することを許しているなら、あなたには友人がいません。あなたの周りには、時々笑いものにするピエロがおり、彼らの友情と意見に価値を見出さないのです。

ニコライ・セムコ

それとも、私が何かを見落として、どこかで良識の境界線を踏み外してしまったのでしょうか。

私はあなたの友人でも、兄弟でも、親しい人でもありませんから、あなたに何らかの評価を与えることはできませんし、ましてや公にすることはできません。

ニコライ・セムコ
申し訳ありませんが、私にはどうやら、あなたが追伸で書かれたことを理解するだけの知識と経験がないようです:あなたが書かれたことの意味を誰かが説明してくれたら、とてもありがたいのですが。

追伸に書いてあることの意味が、なぜか理解できないのは当たり前で、高速な数式を使う技術がどう発展するか、プラットフォームがどう発展するか、その後コンパイラに何が追加されるか、プロセッサのレジスタ空間で数値がどう表現されるか、何も知らない くせに、 定数を導入 すればすべてがポジティブで常に解決すると言うのは、いわば妄想である。

もし、あなたの数式がフォーラムの他の人たちに利用され、CやPascalなどに書き込まれる可能性があることを考慮するなら、これらの点も考慮する必要があります。数学にはプラットフォームやプログラミング言語の制限はありません。

ニコライ・セムコ
改めて口調を謝ります。私は常に、同僚との相互尊重と行動の正しさを提唱しています。言い過ぎました。

二度と同じ過ちを繰り返さないように、でなければ、あなたの言葉は意味のないゴミになります。

謹んで申し上げます。

 
Nikolai Semko:
なぜ私が遅いと思うのかわからない。逆に、私のアルゴリズムが一番速いと思って います。私はスピード狂なんです。もちろん、このような丸め関数の置き換えを使っても、得られるものはごくわずかで、1パーセントの端数に過ぎません。しかし、この言葉通り、世間一般からはこれは、例えば航空機やロケット科学などでも同じことが言えます。強度を落とさずに軽量化を図るため、ボルトに至るまで全てに手を加えています。それが、いまや飛行機が理屈に反して最も安全な交通手段である理由のひとつかもしれませんね。
私は、論理に反しない加速ができるプログラミングへの賢明なアプローチに賛成です、そうするのが良いのですが、どんな「病気」でも、健康な生き方からの逸脱であるため、治療が必要なのです。

敬意を込めて。
 
Andrey Kisselyov:

友達を「STUDY」することを自分に許してしまうと、友達がいなくなり、時々バカにするピエロが周りにいて、その人の友情と意見を大切にしなくなるのです。

ニコライの言う通り、オタクが多いようだ ))

個人的には、そこに個人的な言及がないんです。それに、あなたの書き込みは文字数は多いのですが、すべてがオフトピックで、議論のための議論をしているようにしか見えません。