分享
 
 
 

henson.midp.Float浮点类介绍

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

看此文前,你可以首先参考一下《J2ME中定点库MathFP使用入门》一文。MathFP是一个定点的浮点模拟工具,这套类库没有封装细节,而是把一系列的转换操作留给了用户,这些频繁的操作非常容易出错,但是效率上占一定的优势。考虑到极少有J2ME设备设有浮点运算单元,特别是在CLDC1.0设备上不适合使用沉重的浮点运算。所以如果你的应用需要进行沉重的浮点运算,比如基于浮点的游戏,可以采用MathFP。这样至少比你采用手动的乘除法来的优雅。而对于并非沉重的浮点计算,我推荐大家使用由_Nikolay Klimchuk_ 开发的henson.midp.Float库(ver 1.01) ,一个封装良好的Float类。

henson.midp.Float类简介

首先到http://henson.newmail.ru/j2me/Float.java下载源代码。

henson.midp.Float类非常适合科学计算,他的范围很大,具有64位的尾数(mantissa),64位的指数。该Float类和J2SE标准的Float类十分的相似,提供了完备的方法,参考下表:

非静态成员

非静态成员

常量

Float()

Float(long value)

Float(long value, long e)

Float(Float value)

String toString()

Float Add(Float value)

Float Sub(Float value)

Float Mul(long value)

Float Mul(Float value)

Float Div(long value)

Float Div(Float value)

boolean Great(Float x)

boolean Less(Float x)

boolean Equal(Float x)

Float Neg()

long toLong()

boolean isError()

Float sin(Float x)

Float cos(Float x)

Float sqrt(Float x)

Float tan(Float x)

Float asin(Float x)

Float acos(Float x)

Float atan(Float x)

Float atan2(Float x, Float y)

Float parse(String str, int radix)

Float eXP(Float x)

Float log(Float x)

Float log10(Float x)

Float pow(Float x, Float y)

Float ceil(Float x)

Float floor(Float x)

Float abs(Float x)

Float Int(Float x)

Float Frac(Float x)

Float toRadians(Float x)

Float toDegrees(Float x)

Float ERROR

Float ZERO

Float ONE

Float PI - pi

Float E - Euler's constant

Float LOG10 - Natural logarithm of 10

Float LOGdiv2 - Natural logarithm of 0.5

Float PIdiv2 - pi/2

Float PIdiv4 - pi/4

Float PIdiv6 - pi/6

Float PIdiv12 - pi/12

Float PImul2 - pi*2

Float PImul4 - pi*4

Float的使用和大多数提供源代码的第三方库一样,只要直接将其加入到你的工程中来就可以了。

Float类的license很特别,根据作者的要求,需要你做到以下几点:

一个含有此Float类的你的产品的copy和以及对应的license

在about菜单中增加“henson.midp.Float (C) by Nikolay Klimchuk ”版权提示

如果有官方网站,则网站应该提供到http://henson.newmail.ru的链接

测试数据

也许你最关心这个模拟类的速度。以下是官方的测试数据供你参考。

测试程序下载地址:

http://henson.newmail.ru/j2me/FloatTest.jad

http://henson.newmail.ru/j2me/FloatTest.jar

机型

sin, ms

100次

cos, ms

100 次

tan, ms

100 次

add, ms

10000 次

mul, ms

10000 次

div, ms

10000 次

sqrt, ms

1000 次

移动电话

/-\ Nokia

N-Gage

1016

594

1641

1297

3438

6328

4219

6310i

4370

2461

7089

5363

14673

24131

20402

3510i

4202

2435

6837

5324

14550

22370

16678

6100

4407

2534

7065

5410

14905

23794

16069

6610

4381

2511

7158

5492

15056

23874

17318

3650

1094

609

1766

1297

3484

7031

4641

7650

765

453

1265

1031

2515

5328

*

6600

328

157

500

188

547

3235

1328

6220

6086

3623

10149

8325

22395

32238

23670

7600

494

290

795

614

1578

2482

1622

3100

6727

3967

10949

9054

24905

36291

26268

6230 (3.14)

965

538

1654

1088

3212

5165

*

6230 (4.28)

705

414

1197

857

2387

3669

2378

6230i (3.23)

627

351

994

619

1747

3813

1830

7250

4254

2431

7052

5466

14943

22483

14524

7610

281

141

438

187

453

2719

1109

6260

281

141

406

157

453

2766

1187

6630

110

63

156

94

203

1094

500

/-\ Siemens

S55

28899

16559

50899

36306

101370

200670

169181

M55

30441

17025

53584

38420

105500

207800

*

SX1

1110

672

1875

1563

3985

7141

4203

CX65

844

258

342

327

443

1219

923

S65

212

139

337

245

466

1191

798

M75 (new)

267

153

309

240

420

1186

790

/-\ SonyEriCSSon

K300i (new)

739

354

1094

646

1716

3041

2389

K750i

654

319

980

521

1496

2848

1970

Z1010

785

404

1231

886

2026

3289

2603

K700i

712

370

1085

639

1687

3049

1864

T610

20580

11575

33585

28100

71365

87740

76280

T610 (R3C)

8780

5055

14515

11385

30440

42120

34595

T610 (R6C)

9875

5575

16210

12235

33295

49410

37920

P900

250

109

344

156

406

2203

1062

P800

500

282

813

625

1563

3250

1750

Thank you to Dmitry Gorilowsky for measurements

PDA

/-\ Sony

Clie N610

48830

24960

84770

35810

102100

445530

206440

辅助工具:FloatConv (1.1)

_Nikolay Klimchuk_ 还开发了一些相关工具让该Float的使用变得更加的简单。FloatConv是一个数学转换器,它将数学算数表达式转换为midp1.0平台上使用henson.midp.Float的等价表达式。这样使得使用henson.midp.Float的成本大大降低了。这一工具是基于J2SE 。

该工具的下载地址是:http://www.unteh.com/download/FloatConv/FloatConvW.zip

对CLDC1.1的扩展

henson.midp.Float11 是对CLDC1.1的扩展。提供了CLDC1.1相对比J2SE缺失的浮点操作:

Non-static members

Static members

Constants

double asin(double x)

double acos(double x)

double atan(double x)

double atan2(double y, double x)

double exp(double x)

double log(double x)

double log10(double x)

double pow(double x, double y)

double SQRT3 - Square root from 3

double LOG10 - Natural logarithm of 10

double LOGdiv2 - Natural logarithm of 0.5

下载地址:http://henson.newmail.ru/j2me/Float11.java

henson.midp.Float11的license和henson.midp.Float是一样的。

另外一套功能相似的基于CLDC1.0的LIB是Beartronics Java J2ME Libraries的fpmathlib,地址 :http://sourceforge.net/PRojects/bearlib/,感兴趣的朋友可以自行研究。

(出处:http://www.knowsky.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有