Question in floating point operation

Hi,
I have question in java floating point operation.
public class test
     public static void main(String args[])
          double d1 = 243.35 ;
          double d2 = 2.3 ;
          System.out.println(d1 * d2) ;
          System.out.println((float)d1 * (float)d2) ;
The result is,
java version "1.4.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06)
Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode)
5.597049999999999E8
5.5970502E8
Though the multiplication does not result irrational number like 1/3, the result of the first statement is not accurate enough. In our project, this multiplication involves with money and we cannot ignore this.
Can anyone suggest why this is happening? Do I need to convert all the numbers to float to avoid this...Or Is it a bug?
~ Sathiya Dhanapal.

The underlying problem is that not all numbers can be represented exactly in a floating point representation. But if you perform all calculations using doubles and then round to two fractional digits at the end you should get a "correct" result UNLESS you have used ill-conditioned formulas introducing other kinds of arithmetic errors.
There's another way around this when it comes to counting money and that's to use integers (long or int). You convert every number to the lowest monetary unit (like a cent or whatever). Every money-amount can now be represented exactly but you still have to be careful because the rounding problem is still there (What do you do with the last cent when you split 100 cents in 3).
In your example the "more correct" you've got from using floats instead of doubles is only an illusion. The result has been implictly rounded becasuse fewer bits have been used. If you round the double result to the same precision as the float result, they're the same.
The important lesson in all this is TO KNOW WHEN TO ROUND.

Similar Messages

  • Qosmio F50 - Webcam error - Invalid floating point operation

    Hi
    I have Qosmio F50 (4 Weeks old) problem is after two weeks webcam has stopped working *Invalid floating point operation*
    I have to close program via task manager, *Camera assistant software not responding*.
    Have tried following.
    Update all drivers, system restore
    Toshiba help line after all efforts suggested complete reinstall this is to aggressive for me as it would loose certain software on laptop that I had to transfer from old PC and had to plead with certain software companies to transfer (only one license etc).
    Has anybody else had this problem and is there a simple solution
    Will

    Hi,
    I have the same problem, Laptop Qosmio F50 is 4 weeks old and now the webcam stopped working.... it's quite annoying, whenever I start the application it says ' Invalid floating point operation'. To me this sounds as some issues in the software and the compatibility on vista, I think it could happen after putting the laptop to hibernate or suspension state and then when it comes back, the webcam stops working. so let's see if toshiba realeases a fix or new version quickly, otherwise I would be quite disspointed with such a good laptop.

  • Error - "Invalid floating point operation"

    I keep getting a message that says "invalid floating point operation" and the files that I am trying to read are scrambled.  They used to be ok.  Please advise....

    Hi,
    I have the same problem, Laptop Qosmio F50 is 4 weeks old and now the webcam stopped working.... it's quite annoying, whenever I start the application it says ' Invalid floating point operation'. To me this sounds as some issues in the software and the compatibility on vista, I think it could happen after putting the laptop to hibernate or suspension state and then when it comes back, the webcam stops working. so let's see if toshiba realeases a fix or new version quickly, otherwise I would be quite disspointed with such a good laptop.

  • Floating point operations is slower when small values are used?

    I have the following simple program that multiplies two different floating point numbers many times. As you can see, one of the numbers is very small. When I calculate the time of executing both multiplications, I was surprised that the little number takes much longer than the other one. It seems that working with small doubles is slower... Does anyone know what is happening?
    public static void main(String[] args) throws Exception
            long iterations = 10000000;
            double result;
            double number = 0.1D;
            double numberA = Double.MIN_VALUE;
            double numberB = 0.0008D;
            long startTime, endTime,elapsedTime;
            //Multiply numberA
            startTime = System.currentTimeMillis();
            for(int i=0; i < iterations; i++)
                result = number * numberA;
            endTime = System.currentTimeMillis();
            elapsedTime = endTime - startTime;
            System.out.println("
            System.out.println("Number A)
    Time elapsed: " + elapsedTime + " ms");
            //Multiply numberB
            startTime = System.currentTimeMillis();
            for(int i=0; i < iterations; i++)
                result = number * numberB;
            endTime = System.currentTimeMillis();
            elapsedTime = endTime - startTime;
            System.out.println("
            System.out.println("Number B)
    Time elapsed: " + elapsedTime + " ms");
        } Result:
    Number A) Time elapsed: 3546 ms
    Number B) Time elapsed: 110 ms
    Thanks,
    Diego

    Verrry interrresting... After a few tweaks (sum & print multiplication result to prevent Hotspot from removing the entire loop, move stuff to one method to avoid code alignment effects or such, loop to get Hotspot compile everything; code below),
    I find that "java -server" gives the same times for both the small and the big value, whereas "java -Xint" and "java -client" exhibit the unsymmetry. So should I conclude that my CPU floating point unit treats both values the same, but the client/server compilers do something ...what?
    (You may need to add or remove a zero in "iterations" so that you get sane times with -client and -server.)
    public class t
        public static void main(String[] args)
         for (int n = 0; n < 10; n++) {
             doit(Double.MIN_VALUE);
             doit(0.0008D);
        static void doit(double x)
            long iterations = 100000000;
            double result = 0;
            double number = 0.1D;
            long start = System.currentTimeMillis();
            for (int i=0; i < iterations; i++)
                result += number * x;
            long end = System.currentTimeMillis();
            System.out.println("time for " + x + ": " + (end - start) + " ms, result " + result);
    }

  • Niagara II Floating Point Operations

    Niagara II has much improved floating point performance over Niagara I, however I'm wondering if performance of floating point intensive threads could be improved, by amalgamating the floating point processing from each core to a dedicated unit that can execute in parallel, the instructions from all threads, such that if a single core, experiences a floating point intensive load, the floating point load aggregate over the entire processor is better optimized?

    pfirmst wrote:
    Niagara II has much improved floating point performance over Niagara I, however I'm wondering if performance of floating point intensive threads could be improved, by amalgamating the floating point processing from each core to a dedicated unit that can execute in parallel, the instructions from all threads, such that if a single core, experiences a floating point intensive load, the floating point load aggregate over the entire processor is better optimized?I'm not a hardware designer, but I think there are two problems with this approach.
    a. There would probably need to be extra interconnect and arbitration to get from the issue pipeline to the shared floating-point units and back again with the result. This would tend to add latency to the floating-point instruction execution and would probably be bad for performance. For example, the floating-point latency on T1 is about 26 cycles and on T2 it's about 6 cycles.
    b. In order to get more floating-point performance from a single thread, the issue logic would also need to be changed to be able to issue more floating-point instructions in a single cycle (i.e. superscalar issue). This would be good for single thread performance, but would require more complexity and space, and may impact the number of cores/threads that can fit on a single chip. The correlary is that since each T2 core can only issue two floating-point instructions per cycle (one from each of two threads), each core could make use of at most two floating-point units.
    On CMT chips, sharing is good, because it leads to higher efficiency and utilization,
    but too much sharing can also hurt performance. There needs to be balance in the design.
    Peter.

  • Floating point operations....

    We ran into a serious calculation problem, to give you a few
    examples:
    trace(1.3456-1.3454) // gives 0.00019999999999997797 but
    should be 0.0002 clearly
    trace(1.3456*1.3456) // gives 1.8106393599999997 but should
    be 1.81063936
    Any idea on how to resolve the problem?
    Thanks,
    Dan

    This is just a result of the limitations of accuracy in the
    binary representation of decimal numbers.
    http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_13989&sliceId=1
    There's some discussion about as3 in the link below. But the
    general principles are the same for as2 even though the same code
    (apparently) might give different results in as2.
    http://www.kirupa.com/forum/archive/index.php/t-247416.html

  • Cannot get Oracle 10g to start on a G5.  Floating point exception

    After a very painful 10g (EE) installation process i.e fixing all the following:
    1) Created the missing /opt directory
    2) Installation of XCode 1.2
    3) Fixing the root.sh file
    4) Downloaded the crstl file provided by Ron
    5) Copied /etc/oratab/oratab to /etc/oratab
    I tried bringing up the Oracle 10g instance by logging onto Sql*Plus as sysdba and running
    startup nomount pfile ='/Users/oracle/admin/db01/scripts/init.ora''. The instance comes up for a few socunds and crashes. This is what i get in the alert.log
    ==========================================================
    Sat Jul 17 11:40:08 2004
    Starting ORACLE instance (normal)
    LICENSE_MAX_SESSION = 0
    LICENSE_SESSIONS_WARNING = 0
    Picked latch-free SCN scheme 2
    KCCDEBUG_LEVEL = 0
    Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
    Autotune of undo retention is turned on.
    Dynamic strands is set to TRUE
    Running with 2 shared and 18 private strand(s). Zero-copy redo is FALSE
    IMODE=BR
    ILAT =18
    LICENSE_MAX_USERS = 0
    SYS auditing is disabled
    Starting up ORACLE RDBMS Version: 10.1.0.3.0.
    System parameters with non-default values:
    processes = 150
    sga_target = 146800640
    control_files = /Users/oracle/oradata/db01/control01.ctl, /Users/oracle/oradata/db01/control02.ctl, /Users/oracle/oradata/db01/control03.ctl
    db_block_size = 8192
    compatible = 10.1.0.2.0
    db_file_multiblock_read_count= 16
    db_recovery_file_dest = /Users/oracle/flash_recovery_area
    db_recovery_file_dest_size= 2147483648
    undo_management = AUTO
    undo_tablespace = UNDOTBS1
    remote_login_passwordfile= EXCLUSIVE
    db_domain =
    dispatchers = (PROTOCOL=TCP) (SERVICE=db01XDB)
    job_queue_processes = 10
    background_dump_dest = /Users/oracle/admin/db01/bdump
    user_dump_dest = /Users/oracle/admin/db01/udump
    core_dump_dest = /Users/oracle/admin/db01/cdump
    db_name = db01
    open_cursors = 300
    pga_aggregate_target = 16777216
    PMON started with pid=2, OS id=4037
    MMAN started with pid=3, OS id=4039
    DBW0 started with pid=4, OS id=4041
    LGWR started with pid=5, OS id=4043
    CKPT started with pid=6, OS id=4045
    SMON started with pid=7, OS id=4047
    RECO started with pid=8, OS id=4049
    Sat Jul 17 11:40:16 2004
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
    CJQ0 started with pid=9, OS id=4051
    Sat Jul 17 11:40:16 2004
    starting up 1 shared server(s) ...
    Sat Jul 17 11:40:18 2004
    Errors in file /Users/oracle/admin/db01/bdump/db01_ckpt_4045.trc:
    ORA-07445: exception encountered: core dump [semop+8] [SIGFPE] [Invalid floating point operation] [0xA0004CE4] [] []
    Sat Jul 17 11:40:19 2004
    Errors in file /Users/oracle/admin/db01/bdump/db01_mman_4039.trc:
    ORA-07445: exception encountered: core dump [semop+8] [SIGFPE] [Invalid floating point operation] [0x41EDB3C] [] []
    Sat Jul 17 11:40:21 2004
    Errors in file /Users/oracle/admin/db01/bdump/db01_pmon_4037.trc:
    ORA-00822: MMAN process terminated with error
    Sat Jul 17 11:40:21 2004
    PMON: terminating instance due to error 822
    Instance terminated by PMON, pid = 4037
    ==========================================================
    Any idea on what needs to be done to fix this error. I remember that i had the very same issue with the Oracle 9i R2 Developers release.
    Any help will be greatly appreciated.

    After a very painful 10g (EE) installation process
    i.e fixing all the following:<snip>
    Sat Jul 17 11:40:19 2004
    Errors in file
    /Users/oracle/admin/db01/bdump/db01_mman_4039.trc:
    ORA-07445: exception encountered: core dump [semop+8]
    [SIGFPE] [Invalid floating point operation]
    [0x41EDB3C] [] []
    Sat Jul 17 11:40:21 2004
    Errors in file
    /Users/oracle/admin/db01/bdump/db01_pmon_4037.trc:
    ORA-00822: MMAN process terminated with error
    Sat Jul 17 11:40:21 2004
    PMON: terminating instance due to error 822
    Instance terminated by PMON, pid = 4037==============================================> Any idea on what needs to be done to fix this error.
    I remember that i had the very same issue with the
    Oracle 9i R2 Developers release.
    Any help will be greatly appreciated.You mentioned the 9ir2 release. Do you still have any reference to the 9ir2 software in your environment ? With a little luck you have, and in that case it not so hard to find a solution ...
    Ronald.
    http://homepage.mac.com/ik_zelf/oracle

  • ERROR: floating-point constants should not appear

    ERROR: floating-point constants should not appear
    Error preverifying class KGUI.KLabel
    com.sun.kvem.ktools.ExecutionException: Preverifier returned 1
    Build failed
    I get this error after adding this code to my application:
         private int C=0;
         private float D=0.0f;
         private int H=0;
         private float store=0.0f;
         private int pos=0;
         private int SH=0;
    ..................some code.....................
         H=1+ROWS*(f1.getHeight());
         if(H/kawalki.length>0){
              C=H/kawalki.length;
              D=kawalki.length/(H%kawalki.length);
              SH=C;
              if(D>=0.5f)
                   SH++;
         }else{
              SH=1;
              D=kawalki.length/(H%kawalki.length);
    .................some code..............
    protected void keyPressed(int keyCode){
    int game=getGameAction(keyCode);
    switch(game){
    case UP:
    if (line>0){
    line--;
                   pos-=C;
                   store-=D;
                   if(store<0.0f){
                        pos--;
                        store=1.0f+store;
    repaint();
    break;
    case DOWN:
    if(line+ROWS<kawalki.length){
                   line++;
                   pos+=C;
                   store+=D;
                   if(store>=1.0f){
                        pos++;
                        store--;
    repaint();
    break;
    Can anybody help me quick?

    If the platform is CLDC 1.1 you can have floats. Run preverify to see the options. The cldc1.1 preverifier seems to have options to allow rejecting floats/doubles but the default seems to be to allow them.
    Usage: preverify [options] classnames|dirnames ...
    where options include:
    -classpath <directories separated by ';'>
    Directories in which to look for classes
    -d <directory> Directory in which output is written (default is ./output/)
    -cldc1.0 Checks for existence of language features prohibited
    by CLDC 1.0 (native methods, floating point and finalizers)
    -nofinalize No finalizers allowed
    -nonative No native methods allowed
    -nofp No floating point operations allowed
    @<filename> Read command line arguments from a text file
    Command line arguments must all be on a single line
    Directory names must be enclosed in double quotes (")

  • Floating point multiplication

    hello everybody!
    I use OpenSPARC T1. In floating point multiplication the upper 64 bit (64 to 128) where they compute and stored? ...in the fpu or it uses the SPU unit?
    thanx in advance

    Hi,
    According with the OpenSparc T1 micro-architecture specifications (pag 204):
    The FPU includes three independent execution pipelines:
    Floating-point adder (FPA) – adds, subtracts, compares, conversions
    Floating-point multiplier (FPM) – multiplies
    Floating-point divider (FPD) – divides
    However, keep in mind that all the registers for the floating point operations are kept in the cores.
    This is what the specs (pag 31) say about the SPU: "Stream processing unit (SPU) is used for modular arithmetic functions for crypto."

  • Using Floating Point

    I write mobile java program using float point operations
    but i instal to the mobile as a jar file
    the mobile refuse that and give a message: "No supported floating point"
    so what the solution for this problem

    Recently I have to do a project where the main task is to port a J2SE application to J2ME. The J2SE application was full of floating point operation and as per my knowledge J2ME does not support floationg point operation due to low memory availability. So I have converted all the floating point operations to fixed point. I found no other way to execute floating point operations :-(

  • Precision operation (Float point) on FPGA 2011

    Dear Experts....
    For my application I have to perform demodulation operation on FPGA. I want to store an array of double precision number. When I am trying to perform any double precision number operation I am getting this error "Wire:Type not supported in current target" From forums I came to know that on FPGA  in Labview 2011 I cannot have double precision operation. What is alternative?? Please help me with this. Due to this issue my work has been delayed due to this problem..
    Thanks... Kindly guide...
    Solved!
    Go to Solution.

    Dear Mathan, thanks for your reply.... I have already gone throught the link you sent, but for my application I have to have array of floating points number. I can not have integer numbers. Here I have attached my vi. I have to mix a signal of 20 Mhz with sin and cos signal to achieve demodulation. So for Sin and Cos values I have to have floating point. Is ther any way to overcome this problem?
    Attachments:
    fpga.vi ‏30 KB

  • Stupid questions about float operation

    Hi guys.
    I have this code:
    public class Stupida{
         public static void main(String args[]){
              float uno = 14.8210f;
              float due = 14.7110f;
              System.out.println("" + uno + " - " + due + " = " + (uno-due));
    and this is the output:
    14.821 - 14.711 = 0.10999966
    Why the result it's not 0.110????
    I tried with double, but the problem's the same.
    I tried to use the "strictfp" modifier, but the compiler doesn't recognize it.
    What should I do to get the exact result?
    Thanx,
    Pierlu.

    and this is the output:
    14.821 - 14.711 = 0.10999966
    Why the result it's not 0.110????Because floating-point calcuations are inherently imprecise.
    I tried with double, but the problem's the same.If you use double, the answer should be more accurate - you still can not expect it to be precise.
    I tried to use the "strictfp" modifier, but the
    compiler doesn't recognize it.Then you should get a new compiler.
    Even so, the result you have posted is what I got using the strictfp modifier.
    What should I do to get the exact result?I'm not going to go into detail because there are many threads in the forums that already cover this, and there's plently of good technical explainations on the Web - you just have to do a couple of simple searches.
    In short, there are a couple of ways to get correct results. The safest is to use BigDecimal. Another (faster) option is to perform all your calculations using int or long, and keep track of where the decimal point should be, then add it in afterwards for display purposes (however, this requires a prior knowledge of a bounding range in which the figures you are operating on lie).

  • Floating point question

    I am trying to create a price attribute, so I need to places after the decimal point. I how do I set that when I create a table?

    Example from Help section in Oracle SQL Developer:
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    With the OLAP and Data Mining options
    SQL> set serverout on
    SQL> DECLARE  -- Declare variables here.
      2    monthly_salary         NUMBER(6);  -- This is the monthly salary.
      3    number_of_days_worked  NUMBER(2);  -- This is the days in one month.
      4    pay_per_day            NUMBER(6,2); -- Calculate this value.
      5  BEGIN
      6  -- First assign values to the variables.
      7    monthly_salary := 2290;
      8    number_of_days_worked := 21;
      9
    10  -- Now calculate the value on the following line.
    11    pay_per_day := monthly_salary/number_of_days_worked;
    12
    13  -- the following displays output from the PL/SQL block
    14    DBMS_OUTPUT.PUT_LINE('The pay per day is ' || TO_CHAR(pay_per_day));
    15
    16  EXCEPTION
    17  /* This is a simple example of an exeception handler to trap division by zero.
    18     In actual practice, it would be best to check whether a variable is
    19     zero before using it as a divisor. */
    20    WHEN ZERO_DIVIDE THEN
    21        pay_per_day := 0; -- set to 0 if divisor equals 0
    22  END;
    23  /
    The pay per day is 109.05
    PL/SQL procedure successfully completed.
    SQL>It's not create table statement which you need but one can see in this example answer on your " Floating point question".
    HTH
    Message was edited by:
    Faust

  • 128-bit floating point numbers on new AMD quad-core Barcelona?

    There's quite a lot of buzz over at Slashdot about the new AMD quad core chips, announced yesterday:
    http://hardware.slashdot.org/article.pl?sid=07/02/10/0554208
    Much of the excitement is over the "new vector math unit referred to as SSE128", which is integrated into each [?!?] core; Tom Yager, of Infoworld, talks about it here:
    Quad-core Opteron? Nope. Barcelona is the completely redesigned x86, and it’s brilliant
    Now here's my question - does anyone know what the inputs and the outputs of this coprocessor look like? Can it perform arithmetic [or, God forbid, trigonometric] operations [in hardware] on 128-bit quad precision floats? And, if so, will LabVIEW be adding support for it? [Compare here versus here.]
    I found a little bit of marketing-speak blather at AMD about "SSE 128" in this old PDF Powerpoint-ish presentation, from June of 2006:
    http://www.amd.com/us-en/assets/content_type/DownloadableAssets/PhilHesterAMDAnalystDayV2.pdf
    WARNING: PDF DOCUMENT
    Page 13: "Dual 128-bit SSE dataflow, Dual 128-bit loads per cycle"
    Page 14: "128-bit SSE and 128-bit Loads, 128b FADD, 128 bit FMUL, 128b SSE, 128b SSE"
    etc etc etc
    While it's largely just gibberish to me, "FADD" looks like what might be a "floating point adder", and "FMUL" could be a "floating point multiplier", and God forbid that the two "SSE" units might be capable of computing some 128-bit cosines. But I don't know whether that old paper is even applicable to the chip that was released yesterday, and I'm just guessing as to what these things might mean anyway.
    Other than that, though, AMD's main website is strangely quiet about the Barcelona announcement. [Memo to AMD marketing - if you've just released the greatest thing since sliced bread, then you need to publicize the fact that you've just released the greatest thing since sliced bread...]

    I posted a query over at the AMD forums, and here's what I was told.
    I had hoped that e.g. "128b FADD" would be able to do something like the following:
    /* "quad" is a hypothetical 128-bit quad precision  */
    /* floating point number, similar to "long double"  */
    /* in recent versions of C++:                       */
    quad x, y, z;
    x = 1.000000000000000000000000000001;
    y = 1.000000000000000000000000000001;
    /* the hope was that "128b FADD" could perform the  */
    /* following 128-bit addition in hardware:          */
    z = x + y;
    However, the answer I'm getting is that "128b FADD" is just a set of two 64-bit adders running in parallel, which are capable of adding two vectors of 64-bit doubles more or less simultaneously:
    double x[2], y[2], z[2];
    x[0] = 1.000000000000000000000000000001;
    y[0] = 1.000000000000000000000000000001;
    x[1] = 2.000000000000000000000000000222;
    y[1] = 2.000000000000000000000000000222;
    /* Apparently the coordinates of the two "vectors" x & y       */
    /* can be sent to "128b FADD" in parallel, and the following   */
    /* two summations can be computed more or less simultaneously: */
    z[0] = x[0] + y[0];
    z[1] = x[1] + y[1];
    Thus e.g. "128b FADD", working in concert with "128b FMUL", will be able to [more or less] halve the amount of time it takes to compute a dot product of vectors whose coordinates are 64-bit doubles.
    So this "128-bit" circuitry is great if you're doing lots of linear algebra with 64-bit doubles, but it doesn't appear to offer anything in the way of greater precision for people who are interested in precision-sensitive calculations.
    By the way, if you're at all interested in questions of precision sensitivity & round-off error, I'd highly recommend Prof Kahan's page at Cal-Berzerkeley:
    http://www.cs.berkeley.edu/~wkahan/
    PDF DOCUMENT: How JAVA's Floating-Point Hurts Everyone Everywhere
    http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf
    PDF DOCUMENT: Matlab's Loss is Nobody's Gain
    http://www.cs.berkeley.edu/~wkahan/MxMulEps.pdf

  • 16 bit integer vs 32 bit floating point

    What is the difference between these two settings?
    My question stems from the problem I have importing files from different networked servers. I put FCP files (NTSC DV - self contained movies) into the server with 16 bit settings, but when I pull the same file off the server and import it into my FCP, this setting is set to 32 bit floating point, forcing me to have to render the audio.
    This format difference causes stuttering during playback in the viewer, and is an inconvenience when dealing with tight deadlines (something that needs to be done in 5 minutes).
    Any thoughts would be helpful.

    It's not quite that simple.
    32 bit floating point numbers have essentially an 8 bit exponent and 24 bit mantissa.  You could imagine that the exponent isn't particularly significant in values that generally range from 0.0 to 1.0, so you have 24 bits of precision (color information) essentially.
    At 16-bit float, I'm throwing out half the color information, but I'd still have vastly more color information than 16-bit integer?
    Not really.  But it's not a trivial comparison.
    I don't know the layout of the 24 bit format you mentioned, but a 16 bit half-float value has 11 bits of precision.  Photoshop's 16 bits/color mode has 15 bits of precision.
    The way integers are manipulated vs. floating point differs during image editing, with consistent retention of precision being a plus of the floating point format when manipulating colors of any brightness.  Essentially this means very little chance of introducing posterization from extreme operations in the workflow.  If your images are substantially dark, you might actually have more precision in a half-float, and if your images are light you might have more precision in 16 bits/channel integers.
    I'd be concerned over what is meant by "lossy" compression.  Can you see the compression artifacts?
    -Noel

Maybe you are looking for

  • Cancel the excise invoice through J1IEX

    Hi 1)  My client has captured the excise through J1IEX 2)  The excise has been captured 3)  Necessary Accounting entries has been captured in the RG23A registered 4) Now my client wants to cancel the doc 5)  the tried to cancel through J1IEX 6) but t

  • Problem in PI Sheet Print out

    Dear PP Guys I am facing a problem while taking Print out of PI sheet in PDF format... The Contents of the PI sheet are getting out of the std A4 size paper. How can we fit the PI sheet content to a A4 size paper while taking print We are using EHP 4

  • Routine in Infopackage selection

    Hi, We are using DB Connect and hence we need to write a routine in Infopackage selections to restrict the data to be extracted. In the source file, there is a field called " Time stamp". This is a Char 23 field with mm-dd-yyyy-hh.mm.ss.sssss format.

  • Is there a max number of iCloud clients

    iCloud supports my iPhones and Windows 8.1 calendars, but structurally discards my iPad. Is there a max number of iCloud clients ina network?

  • Align Image and Text Problem

    I have DW CS4 and Windows XP with plenty of memory and have used this method before to align text with an image.  I insert the image on the page and then type in the text beside the image that I want.  If the text is long, then the second line of tex