問題タブ [fixed-point]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
56877 参照

bash - float で expr を使用するには?

私はそれが本当にばかげた質問であることを知っていますが、bashでこれを行う方法がわかりません:

そうあるべきですが、float をサポートしていないため、66.67expr は と言っています。0expr を置き換えてこの等号を実行できる Linux のコマンドはどれですか?

0 投票する
2 に答える
555 参照

algorithm - 現在広く使用されている圧縮アルゴリズムの固定点

今日一般的に使用されている、固定小数点、つまり ID ファイルを含む圧縮アルゴリズムがあるかどうか疑問に思っていました。

C : byte[] -> byte[]説明するために、圧縮アルゴリズムを表す関数を呼び出してみましょう。f次のようなファイルが存在するかどうか (妥当な時間内に特定できる場合は、それが何であるか) を知りたいです。

C(f) = f

つまり、現在一般的に使用されている適切で広く知られている圧縮アルゴリズムによって圧縮されると、結果としてそれ自体が生成されるファイルです。

このような現象をご存知ですか?

0 投票する
4 に答える
2766 参照

iphone - 浮動小数点演算の回避

iPhone用の小さなソフトウェアシンセを書きました。
パフォーマンスをさらに調整するために、Sharkを使用してアプリケーションを測定したところ、float/SInt16変換で多くの時間が失われていることがわかりました。
そこで、「すぐに使用できる」SInt16サンプルを返すルックアップテーブルを事前に計算して、変換を回避するためにいくつかの部分を書き直しました。これは今のところうまく機能します。
現在、整数演算のみを使用するようにいくつかのフィルターとADSRエンベロープの実装を書き直そうとしていますが、浮動小数点数なしで乗算/除算を実行する方法についていくつかのヒントを使用できます。
私はiPhoneの標準フォーマットをターゲットにしています:

  • LPCM
  • 16ビット整数サンプル

フロートを使用せずに最終サンプルに振幅を適用するための良いアプローチは何ですか?

編集:
私がこれまでに理解した唯一のことは、現在のサンプルを右シフトすることで2の累乗で割ることができるということです。

しかし、それを使ってスムーズなADSRエンベロープを作成するためのエレガントな方法は考えられません。

Edit2: すべての素晴らしい答えをありがとう!
私の現在のアプローチ:

  • すべてのADSRエンベロープ値を正のSInt16範囲にします
  • ウェーブテーブルからの現在の値を乗算します(中間体をSInt32として格納します)
  • 結果を右に16シフトします

これはうまくいくようです:)

0 投票する
2 に答える
1133 参照

algorithm - 固定小数点逆正弦

4.12固定小数点の角度の正弦を計算する(できれば高速な)方法を知っている人はいますか?(結果は円の32768分の1または度のいずれかです)

4.12固定小数点は、数値が16ビットで、左に12シフトされることを意味します。したがって、1.0は(1 << 12)または4096になります。0.5は(0.5 << 12)==2048などになります。

0 投票する
1 に答える
2054 参照

signal-processing - 複素数: 直交座標から極座標への高速変換

複素数の配列を極座標表現に変換する高速な方法を探しています。

たとえば、与えられた複素数 XI は、次のように極座標表現に変換したいと考えています。

固定小数点 DSP では、この変換を毎秒約 40 万回行う必要があります。私の数値は 1.15.16 の固定小数点形式であり、そのまま維持したいと考えています。

DSP は、ループ回数が事前にわかっている場合など、無条件ループで実行する場合に非常に高速です。サブルーチンの呼び出しと除算を行う必要がある場合は、クロールします。キャッシュ ミスも非常に遅いため、可能であれば大きなルックアップ テーブルを使用したくありません (4k で問題ありません。そのタスクのためにオンチップ メモリを少し取っておくことができます)。

現在、atan2 を多項式近似として処理し、よく知られたビット単位のアルゴリズムを整数の平方根に使用しています。それは十分に速くありません。

結果を得るにはもっと効率的な方法が必要だと感じています。sqrt と atan からの計算の一部を共有できるのではないでしょうか? または、結果を取得するための反復的な方法はありますか?

0 投票する
2 に答える
1086 参照

apache-flex - actionscript 3 用の固定小数点ライブラリはありますか?

Flex で電卓をコーディングしたいのですが、Web 上に固定小数点ライブラリが見つかりません。

電卓については、IEEE 754 が保証できる以上の精度が必要です。例えば:

誰かが良い固定小数点ライブラリを提案できますか?

前もって感謝します

0 投票する
1 に答える
3423 参照

c++ - x86のc/c ++で16.16固定小数点を32ビット浮動小数点に変換する最速の方法は?

ほとんどの人は逆に行きたいようです。理想的にはSSE2を使用して、固定小数点を浮動小数点に変換する高速な方法があるかどうか疑問に思っています。ストレートCまたはC++、あるいはasmでも問題ありません。

0 投票する
7 に答える
53394 参照

mysql - 金額をmysqlに保存する

3.50 を mysql テーブルに格納したいと考えています。格納する float がありますが、3.50 ではなく 3.5 として格納されます。末尾のゼロを取得するにはどうすればよいですか?

0 投票する
3 に答える
487 参照

naming-conventions - 10進数の一部を抽出する関数に名前を付ける方法は?

「123.456」などの 10 進数を処理するクラスを作成しています。小数点の前の数字 (123) を抽出する関数が 1 つと、小数点の後の数字 (0.456) を抽出する関数が 1 つ必要です。私の質問は、プログラミングの方法ではなく、関数に名前を付ける方法ですか? とよりも良いアイデアはdigits_before_point()ありdigits_after_point()ますか?

0 投票する
2 に答える
915 参照

floating-point - 固定小数点から浮動小数点へ、およびその逆

固定ポイントを変換しています。(小数部の固定 n ビット) IEEE ダブルセーフ ?

つまり、IEEE double 形式は、固定小数点が表すことができるすべての数値を表すことができますか?

テスト: 数値は浮動 pt 形式になり、元の固定 pt 形式に戻ります。