私が行っているのは、(不確実性) を使用して、 (値) と(不確実性)#define UNC
を計算する機能のオンとオフを切り替えることです。かなりうまく機能しますが、読み書きは簡単ではありません。これを行うより良い方法はありますか?C++ では、またはある種のタプルを使用する場合があります。と の両方で構造体を使用することもできますが、未定義のままにすることもありますが、このコードを非常に大規模に実行する予定であり、これらの不要な項目をすべてオフにして処理することでコンパイラの速度を低下させたくありません。x
dx
std::pair
x
dx
dx
UNC
同様の問題に遭遇した人はいますか?
参考までに、コードは次のとおりです。
#include <stdio.h>
#define UNC
typedef struct{
double x;
#ifdef UNC
double dx;
#endif
} Foo;
int force(Foo* m, Foo* a, Foo* f){
f->x = m->x * a->x;
#ifdef UNC
f->dx = (f->x)*(m->dx/m->x + a->dx/a->x);
#endif
return 0;
}
int main(){
Foo m; m.x = 3.0;
Foo a; a.x = 2.0;
#ifdef UNC
m.dx = 0.3;
a.dx = 0.2;
#endif
Foo f;
force(&m,&a,&f);
printf(" f is %f \n", f.x);
#ifdef UNC
printf("df is %f \n", f.dx);
#endif
return 0;
}