Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (767)
Games in Android Showcase (229)
games submitted by our members
Games in WIP (854)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Hgh precision arithmetic in Java.  (Read 1945 times)
0 Members and 1 Guest are viewing this topic.
Offline Raghar

Junior Devvie

Ue ni taete 'ru hitomi ni kono mi wa dou utsuru

« Posted 2005-08-10 16:59:19 »

So I went into a nice problem of additing a some high precision number cababilities to the Java.

Namely 128 bit primitives, 256 bit primitives, and unlimited depth precision.
I already discovered why Intel preffers high endian, better for multiplying and forward iteration during addition.

IIRC SSE2 registers don't support carry flag (or adc), so I might be forced to use a slighly less efficient algorithm for parallel computation.

This library seems to look interesting. It's backed by byte arrays (could hotspot translate (a &0xff)*b(&0xff) to mul eax, ebx   ?) I have also a nice asm code sniplets for addition of full native support to the hotspot under MMX compatibile IA32 platforms.

So whats are your thoughts on Java supporting 128 bit numbers natively?
Offline Jeff

JGO Coder

Got any cats?

« Reply #1 - Posted 2005-08-10 22:15:47 »

We talking int or float ?

For int BigInt has existed for quite ahwile.

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!
Offline Raghar

Junior Devvie

Ue ni taete 'ru hitomi ni kono mi wa dou utsuru

« Reply #2 - Posted 2005-08-11 17:41:19 »

Actually both.

Note I talked about 128 bit and 256 bit primitives. BigInt isn't exactly what you'd like to use for fixed size arithmetic when you would like to have data in one place of memory for a long time.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Raghar

Junior Devvie

Ue ni taete 'ru hitomi ni kono mi wa dou utsuru

« Reply #3 - Posted 2005-08-18 18:00:55 »

Java has a high precision library, with support for high precision arithmetic, and some other features. Like endian independence, and ability to work with buffers.

Funny thing is it's curently not exactly usable for my purposes. And benchmarks showed it's 29 x slower for int multiplication, and 300 times slower for 16 byte multiplication than standard int multiplication on 32 bit computer. It's not exactly bad and for things that needs such precision it's better than nothing.
Interface is nice, and prety much usable with future versions of simillar libraries.
Pages: [1]
  ignore  |  Print  

EgonOlsen (1256 views)
2018-06-10 19:43:48

EgonOlsen (1125 views)
2018-06-10 19:43:44

EgonOlsen (862 views)
2018-06-10 19:43:20

DesertCoockie (1271 views)
2018-05-13 18:23:11

nelsongames (1104 views)
2018-04-24 18:15:36

nelsongames (1335 views)
2018-04-24 18:14:32

ivj94 (2074 views)
2018-03-24 14:47:39

ivj94 (1227 views)
2018-03-24 14:46:31

ivj94 (2169 views)
2018-03-24 14:43:53

Solater (792 views)
2018-03-17 05:04:08
Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08

Deployment and Packaging
by gouessej
2018-08-22 08:03:45

Deployment and Packaging
by philfrei
2018-08-20 02:33:38

Deployment and Packaging
by philfrei
2018-08-20 02:29:55

Deployment and Packaging
by philfrei
2018-08-19 23:56:20

Deployment and Packaging
by philfrei
2018-08-19 23:54:46 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!