Cで-PIと+ PIの間の数値をトリミングする最も速い方法は何ですか?

マークマイルズ

浮動小数点数が高いとしましょう... 1345.23 -PIと+ PIの間に留まるまで2 * PI減らしたいので、次のようにします。

#define PI  3.14159265358f
#define TWO_PI  6.28318530718f

float a = 1345.23f;
while (a > PI) a -= TWO_PI;

最速の方法を知っていますか?

グランミルパ

このコードを使用すると、ループに1回だけ入ります(さらに追加するだけでディレーティングできます) a -= TWO_PI

#include <stdio.h>

#define PI      3.14159265358f
#define TWO_PI  6.28318530718f

int main(void) {

    float a = 1345.23f;
    float b = 1345.23 - PI;
    int c = b/TWO_PI;

    a -= c*TWO_PI; 
    int i = 0;
    while (a > PI){
        a -= TWO_PI;
        printf("%d",i++);
    }

    printf("\na : %f",a);
}

出力:

0
a:0.628314

あなたのコードはcicleを行いますが:

214 times

より良いコード:

#include <stdio.h>

#define PI         3.14159265358f
#define TWO_PI     6.28318530718f
#define INV_TWO_PI 0.15915494309189533

int main(void) {

    double a = 1345.23;
    if(a > PI){

        double b = a - PI; // you get the distance between a and PI

        // int c = b/TWO_PI; // you get the integer part
        int c = b * INV_TWO_PI; // the same as above using multiplication

        a -= (c+1)*TWO_PI; // you just subtract c+1 times TWO_PI
                           // c+1 cause you want come in the range [-PI,PI]
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

nと2nの間の素数を見つける最も速い方法は何ですか

分類Dev

リスト内の特定の数値に最も近い小さい値と大きい値を見つけるための最良の方法は何ですか

分類Dev

緯度を考えると、長い。座標、リスト上の最も近い座標を見つける最も速い方法は何ですか?

分類Dev

文字列のセットを1つの文字列と比較する最も速い方法は何ですか?

分類Dev

リストの各要素を別のリストの対応する要素と比較する最も速い方法は何ですか?

分類Dev

キーと値のペアからJSONオブジェクトを「フィルタリング」する最も効率的な方法は何ですか?

分類Dev

Swift 3の「M_PI_4」と「M_PI_2」の構文は何ですか?

分類Dev

オフセットのリストを考えると、特定のKafkaパーティションからオフセットを読み取る最も速い方法は何ですか?

分類Dev

NumPy配列と多対1のマッピング配列が与えられた場合、集約されたマップ値を計算する最も速い方法は何ですか

分類Dev

64ビットの分子と分母を使用したpiの最適な有理近似は何ですか?

分類Dev

java.lang.Math.PIはGCCのM_PIと等しいですか?

分類Dev

配列から値のすべての出現を削除する最も速い方法は、それを最も速くスプライスすること、またはより速くフィルターすることです。

分類Dev

配列から値のすべての出現を削除する最も速い方法は、それを最も速くスプライスすること、またはより速くフィルターすることです。

分類Dev

ggplot coord_polar()は、上部と下部でpi / 2と-pi / 2の間をプロットします

分類Dev

C ++でファイルから読み取るときにエンディアンを切り替える最も速い方法は何ですか?

分類Dev

C コードをベア メタル (raspberry pi) にコンパイルするときに何が間違っているのでしょうか。

分類Dev

着信リクエストに特定のヘッダー値が含まれていることを確認する最も簡単な方法は何ですか

分類Dev

単語リストに従って単語を置き換えることによって文を複製する最も速い方法は何ですか?

分類Dev

2つのuint8_t変数間の差を計算する最も速い方法は何ですか?

分類Dev

C ++で実験を行うときに、いくつかの関数のCPU時間を測定するための最良の方法は何ですか?

分類Dev

リスト内の数字の増加する桁をソート/フィルタリング/合計する最も速い方法は何ですか

分類Dev

LaravelとAmazons3で「安全な」画像を表示する最も速い方法は何ですか?

分類Dev

MatlabでPiの特定の値のcos関数のグラフをプロットする方法は?

分類Dev

Javaでキーと値のペアを検索する最も速くて最も効率的な方法は?

分類Dev

__mm256ベクトルのゼロ以外のエントリの数を数える最も速い方法は何ですか?

分類Dev

それの最終的なURLへのリンクを302にする最も速い方法は何ですか?

分類Dev

ソートされたデータをキー/値とともにC#で保存するための最良の方法は何ですか

分類Dev

100個のCSVファイルとヘッダーを1つに結合する最も速い方法は何ですか?

分類Dev

ディクショナリからパンダの列のサブセットに値をマップする最も速い方法は何ですか?

Related 関連記事

  1. 1

    nと2nの間の素数を見つける最も速い方法は何ですか

  2. 2

    リスト内の特定の数値に最も近い小さい値と大きい値を見つけるための最良の方法は何ですか

  3. 3

    緯度を考えると、長い。座標、リスト上の最も近い座標を見つける最も速い方法は何ですか?

  4. 4

    文字列のセットを1つの文字列と比較する最も速い方法は何ですか?

  5. 5

    リストの各要素を別のリストの対応する要素と比較する最も速い方法は何ですか?

  6. 6

    キーと値のペアからJSONオブジェクトを「フィルタリング」する最も効率的な方法は何ですか?

  7. 7

    Swift 3の「M_PI_4」と「M_PI_2」の構文は何ですか?

  8. 8

    オフセットのリストを考えると、特定のKafkaパーティションからオフセットを読み取る最も速い方法は何ですか?

  9. 9

    NumPy配列と多対1のマッピング配列が与えられた場合、集約されたマップ値を計算する最も速い方法は何ですか

  10. 10

    64ビットの分子と分母を使用したpiの最適な有理近似は何ですか?

  11. 11

    java.lang.Math.PIはGCCのM_PIと等しいですか?

  12. 12

    配列から値のすべての出現を削除する最も速い方法は、それを最も速くスプライスすること、またはより速くフィルターすることです。

  13. 13

    配列から値のすべての出現を削除する最も速い方法は、それを最も速くスプライスすること、またはより速くフィルターすることです。

  14. 14

    ggplot coord_polar()は、上部と下部でpi / 2と-pi / 2の間をプロットします

  15. 15

    C ++でファイルから読み取るときにエンディアンを切り替える最も速い方法は何ですか?

  16. 16

    C コードをベア メタル (raspberry pi) にコンパイルするときに何が間違っているのでしょうか。

  17. 17

    着信リクエストに特定のヘッダー値が含まれていることを確認する最も簡単な方法は何ですか

  18. 18

    単語リストに従って単語を置き換えることによって文を複製する最も速い方法は何ですか?

  19. 19

    2つのuint8_t変数間の差を計算する最も速い方法は何ですか?

  20. 20

    C ++で実験を行うときに、いくつかの関数のCPU時間を測定するための最良の方法は何ですか?

  21. 21

    リスト内の数字の増加する桁をソート/フィルタリング/合計する最も速い方法は何ですか

  22. 22

    LaravelとAmazons3で「安全な」画像を表示する最も速い方法は何ですか?

  23. 23

    MatlabでPiの特定の値のcos関数のグラフをプロットする方法は?

  24. 24

    Javaでキーと値のペアを検索する最も速くて最も効率的な方法は?

  25. 25

    __mm256ベクトルのゼロ以外のエントリの数を数える最も速い方法は何ですか?

  26. 26

    それの最終的なURLへのリンクを302にする最も速い方法は何ですか?

  27. 27

    ソートされたデータをキー/値とともにC#で保存するための最良の方法は何ですか

  28. 28

    100個のCSVファイルとヘッダーを1つに結合する最も速い方法は何ですか?

  29. 29

    ディクショナリからパンダの列のサブセットに値をマップする最も速い方法は何ですか?

ホットタグ

アーカイブ