問題タブ [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 投票する
4 に答える
1761 参照

c++ - 固定小数点演算の実装は正しいですか?

少し前に、固定小数点値を操作するための一連の C マクロを作成しました。SOに関するいくつかの質問と回答に励まされて、プログラムの計算集約的な部分でパフォーマンスが向上することを望んでいました。コードは正しい結果を生成しているように見えますが、ルーチンの通常の浮動小数点バージョンよりも実際に実行が遅いため、単純すぎたり単純化しすぎたりしていないかどうか疑問に思っています (Wintel でバイキュービック画像補間を行っています)。私のマクロを含むこの短いコードを見て、特にパフォーマンスに関して改善点を提案していただけませんか? ありがとう。

編集:基本的に、回答とコメントは次の 2 つの点に向けられました。

  • コードは恐ろしく、使用と保守が困難です。私は心から同意し、時間をかけてクラス内にカプセル化します。対処されたパフォーマンスについていくつかの懸念がありましたが、それらは根拠のないものであると確信しており、すべてのトラブルを無料で行ってきました. :)
  • とにかく、固定小数点は問題に値しません。私のプラットフォームではそうかもしれませんが、浮動小数点ハードウェアがないプラットフォームでコードの実行速度を向上させるためにこれを作成していました。そこでは、浮動小数点演算に時間がかかりすぎたため、固定するしか方法がありませんでした。現時点ではターゲット ハードウェアにアクセスできないため、Intel でのみこれをテストしていました。

これまでに提供された洞察に非常に感謝していますが、固定小数点で実際に計算を行った人から、これらの算術演算が実際に進むべき道であるかどうかを教えてもらいたいと思っていました. おそらく、私が気付いていない気の利いたビット操作が追加されている可能性があります。これは、パフォーマンスや精度に関して違いをもたらしますか? つまり、このコードをカプセル化する場合、インライン演算子関数の同じ算術命令を基本的に現在と同じに保つことができますか、それとも何らかの方法で変更する必要がありますか?

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

iphone - 浮動小数点の代わりに固定小数点演算を行う方法は?

私は数学のおじさんではありませんが、本物のおじさんが私にこう言いました:

「浮動小数点の代わりに固定小数点を使用して、乗算、除算、合計、三角法、および積分を実行します」

では、double または float データ型を使用する代わりに、どうすればよいでしょうか? 数学に興味のないおじさんの違いを示す便利なスニペットまたはリンクを持っている人はいますか?

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

android - OpenGLESGL_FIXEDとGL_FLOAT

OpenGL ES 1.xを使用してAndroid用のアプリを作成していますが、iOSデバイスとOpenGLES2.xを含む回答が必要です。

GL_FLOATとGL_FIXEDのどちらを使用するかについて混乱しています。優先順位は、GPU操作に関するパフォーマンスです(GL_FIXEDは変換する必要がありますか?例:GL_FIXEDは必要な精度に正確に適合しますが、フロートに変換する場合はそれを使用します無意味です)。

この本は、頂点にGL_FIXEDを使用することが常に望ましいと言っているようです:「主な例外は、浮動小数点で決して与えられるべきではない頂点データです...」 ここ(サブタイトル「頂点データ」のすぐ上の段落)

しかし、浮動小数点の方が良いと言う人を見たことがあります。

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

ios - iOSオーディオ処理にネイティブ固定ポイントタイプ(8.24)を使用する方法

したがって、-1から+1の範囲のフロートを、次のように設定されたストリーム形式のAUGraphで期待される形式に適切にスケーリングしたいと思います。

この質問はグラフの設定に役立ちましたが、次のようにフロートをキャストすると、次のようになります。

それは機能し、信号は良い音に聞こえますが、非常に静かです。だから私はスケーリングを間違っていますか?より大きな数でスケーリングすると、信号が台無しになります。クリッピングのように聞こえず、出力音量が高くなりません。固定小数点演算を深く研究するつもりはありません。必要なのは、適切な形式にキャストするワンライナーだけです。

ありがとう!

編集:私は別のストリーム形式を使用していましたが、それ以前はステレオ信号で適切に使用する方法を理解できませんでした。この異なる設定では、出力ボリュームに問題はありませんでした。したがって、ゲインの問題はスケーリングに関係しているに違いないと思います...

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

floating-point - 固定小数点数と浮動小数点数

固定小数点数と浮動小数点数のコンピューター アーキテクチャのさまざまな長所と短所は何ですか? どちらもある種の不正確さにつながることは理解できます。

私の他の質問は

  1. これらの不正確さはどのように発生しますか?

  2. あるフォームは他のフォームよりも優れていますか?

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

objective-c - Objective-Cに固定小数点の10進オブジェクトはありますか?

他の言語では、精度を保証するために、IEEE float/doublesの代わりに使用できる固定10進オブジェクトがよくあります。Objective-Cには似たようなものがありますか?私が探していたとき、私が見つけたのはNSNumberだけでした。これは、標準のプリミティブ型のみを扱っているようです。私が見逃している別のオブジェクトはありますか?

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

math - 固定小数点の逆平方根

固定小数点 16.16 の数値に最適な逆平方根アルゴリズムを探しています。以下のコードは私がこれまでに持っているものです(ただし、基本的には平方根を取り、元の数で割ります。除算なしで逆平方根を取得したいと思います)。何か変更があれば、コードは armv5te 用にコンパイルされます。

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

floating-point - 固定小数点 MATLAB DSP アルゴリズム

Texas Instruments TMS320C64xx DSP のアルゴリズムを MATLAB でコーディングする方法について質問があります。

MATLAB でフィルターのずさんな実装が機能しています。私の目標は、MATLAB Embedded Coder を使用してこのアルゴリズムを C に変換し、それを Code Composer Studio にインポートして DSP にロードできるようにすることです。

これを行うには、MATLAB コードに対して行う必要がある特定の操作があることを知っています。たとえば、マトリックスにスペースを事前に割り当てる必要があるため、マトリックスを作成するサイズを認識できます (可変サイズのデータ​​をいじりたい場合を除きます)。MATLABコードをC'ishコードに変換して、MATLABコーダーがそれを変換できるようにすることは、多かれ少なかれ理解できます。ただし、MATLAB Embedded Coder がコードを固定小数点データ型のみを含む C に変換できるように、データ型 (フィルターの係数など) が浮動小数点ではなく固定小数点であることを確認する方法がわかりません。

したがって、私の全体的な質問は次のとおりだと思います。

1) C64xx が 32 ビット固定小数点 DSP として指定されている場合、float データ型を使用しようとするとコンパイラがエラーをスローすることを意味しますか?

2) MATLAB Embedded Coder が float データ型を作成しないようにする方法はありますか?

3) MATLAB Fixed Point Toolbox を使用する必要がありますか?

私の質問に答えるために必要な情報が他にある場合はお知らせください。

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

mysql - Ruby on Rails で固定小数点/小数点を処理する最良の方法

そのため、Ruby On Rails を使用して時間追跡アプリケーションを作成し、時間を表す数値として時間を保存しています。

0.01 (36 秒) 時間を超えるものは無関係なので、小数点以下 2 桁だけが必要です。

列の型としてフロートを持つ MySQL データベースを使用しています。これはほとんどの場合機能しますが、浮動小数点数の計算と丸めでエラーが発生することがあります。

オプションについて調査したところ、多くの人が BigDecimal の使用を推奨していることがわかりました。計算を使用して多くのカスタム データベース クエリを使用しているため、列の種類を変更するとこれにどのような影響があるかを知りたいと思いました。これは文字列または yaml として保存されますか、それとも MySQL でネイティブにサポートされていますか?

または、Ruby/Rails で固定小数点 10 進演算を行う同等の方法があります。

どの方法でも多くのリファクタリングが必要になると思いますが、これを最も回避するにはどうすればよいですか?

どんな洞察も高く評価されます。

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

c - ..エラーへの奇妙な未定義参照

ウィキペディアで見つけた固定小数点数学ライブラリを試して、Googleコードからダウンロードしました。
次の main.c ファイルをソースに追加し、全体を実行可能ファイルとして再コンパイルして、簡単なサンプル プロジェクトをコンパイルしようとしました。

問題の
gcc(実際にはコードブロックv1.0を使用しています)は、ライブラリが定義していると本当に思う関数への未定義の参照について不平を言っています。一部の関数は機能し、他の関数は「未定義の参照エラー」を生成します。たとえば、ソース ファイルに追加しようとした main.c ファイルを次に示します。



EDIT3:
//メイクファイルとビルドログの両方を表示

//エクスポートされたメイクファイル