原創(chuàng)|其它|編輯:郝浩|2012-12-24 15:30:25.000|閱讀 394 次
概述:本文主要通過(guò)示例代碼,講述原生C#數(shù)學(xué)函數(shù)庫(kù)NMath,如何編寫代碼以訪問(wèn)底層數(shù)據(jù)和應(yīng)用函數(shù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
本文主要通過(guò)示例代碼,講述原生C#數(shù)學(xué)函數(shù)庫(kù)NMath,如何編寫代碼以訪問(wèn)底層數(shù)據(jù)和應(yīng)用函數(shù)。
針對(duì)需要原生和遺留代碼接口的應(yīng)用程序,NMath向量和矩陣的類可用作一個(gè)指針來(lái)獲取底層數(shù)據(jù)。這些類擁有一個(gè)叫DataBlock的屬性,這個(gè)屬性可以返回<Type>DataBlock對(duì)象。<Type>DataBlock包括一個(gè)數(shù)組和一個(gè)偏移量,讓你可以通過(guò)其獲取底層數(shù)據(jù),例如:
DoubleVector v = new DoubleVector( 12, 0, 1 ); DoubleDataBlock dataBlock = v.DataBlock; unsafe { double *ptr = &(dataBlock.Data[dataBlock.Offset]); // Do with *ptr something here }
NMath提供了方便的方法把一元和二元函數(shù)應(yīng)用到向量或矩陣對(duì)象的元素中。通過(guò)Apply()返回一個(gè)新的對(duì)象,其內(nèi)容是給定函數(shù)應(yīng)用于矩陣或向量元素的結(jié)果。Transform()能夠修改矩陣或向量對(duì)象中應(yīng)用的函數(shù)元素。根據(jù)這個(gè)原理,我們可以來(lái)看以下例子。假設(shè)MyFunc是一個(gè)函數(shù):
// Construct a delegate for MyFunc Func<double, double> MyFuncDelegate = new Func<double, double>( MyFunc ); // Construct a new vector whose values are the result of applying // MyFunc to the values in vector v. v remains unchanged. DoubleVector w = v.Apply( MyFuncDelegate ); // Transform the contents of v. v.Transform( MyFuncDelegate ); v == w; // true!
NMath在NMathFunctions類提供了許多常用的數(shù)學(xué)函數(shù)。接下來(lái)會(huì)詳細(xì)介紹,敬請(qǐng)關(guān)注。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)