2011-07-05 64 views
5

C++摘要在C#中使用pragma內在(sqrt,pow)?

在你的代碼的預處理器部分使用#pragma intrinsic命令將大大增加大多數數學函數調用的速度。

#pragma intrinsic(sqrt, pow) 

上面的代碼允許大多數數學函數調用直接發送到數學協處理器而不是發送到函數堆棧。

問題

有沒有辦法在C#這樣做嗎?除了重寫內置函數來做類似的事情。例如像,通常做的兩個電源,因此這將是適當的,但它不是我所期待的:

public double Pow2(double value) 
{ 
    return (value * value); 
} 

回答

3

C#不應該需要「內在的#pragma」,這是因爲:

Accessing math coprocessor from C#

JIT編譯器知道數學協處理器,並使用它。

+0

這是JIT彙編承諾的一部分......但我不認爲.NET至少在第4版中確實會這樣做。# –

+1

@Dark:你在引用我上下文。這一點特別討論了使用SIMD。 –

+0

你的權利,我的不好。沒有看到。那麼,如果我想加快我的代碼,那將會是一個可行的替代品嗎? –