alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Commons Math example source code file (complex.xml)

This example Commons Math source code file (complex.xml) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Commons Math tags/keywords

apache, complex, complex, complexformat, complexformat, license, license, numbers, see, the, the, these, to, you

The Commons Math complex.xml source code

<?xml version="1.0"?>

<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
  -->
  
<?xml-stylesheet type="text/xsl" href="./xdoc.xsl"?>
<!-- $Revision: 619641 $ $Date: 2008-02-07 16:17:35 -0500 (Thu, 07 Feb 2008) $ -->
<document url="stat.html">
  <properties>
    <title>The Commons Math User Guide - Complex Numbers
  </properties>
  <body>
    <section name="7 Complex Numbers">
      <subsection name="7.1 Overview" href="overview">
        <p>
          The complex packages provides a complex number type as well as complex
          versions of common transcendental functions and complex number
          formatting.
        </p>
      </subsection>
      <subsection name="7.2 Complex Numbers" href="complex">
        <p>
          <a href="../apidocs/org/apache/commons/math/complex/Complex.html">
          org.apache.commons.math.complex.Complex</a> provides a complex number
          type that forms the basis for the complex functionality found in 
          commons-math.
         </p>  
         <p>
           Complex functions and arithmetic operations are implemented in
           commons-math by applying standard computational formulas and
           following the rules for <code>java.lang.Double arithmetic in 
           handling infinite and <code>NaN values.  No attempt is made
           to comply with ANSII/IEC C99x Annex G or any other standard for
           Complex arithmetic.  See the class and method javadocs for the 
           <a href="../apidocs/org/apache/commons/math/complex/Complex.html">
           Complex</a> and
           <a href="../apidocs/org/apache/commons/math/complex/ComplexUtils.html">
           ComplexUtils</a> classes for details on computing formulas.
        </p>
        <p>
          To create a complex number, simply call the constructor passing in two
          floating-point arguments, the first being the real part of the
          complex number and the second being the imaginary part:
          <source>Complex c = new Complex(1.0, 3.0); // 1 + 3i
        </p>
        <p>
          Complex numbers may also be created from polar representations
          using the <code>polar2Complex method in 
          <code>ComplexUtils.
        </p>
        <p>
          The <code>Complex class provides basic unary and binary
          complex number operations.  These operations provide the means to add,
          subtract, multiply and divide complex numbers along with other
          complex number functions similar to the real number functions found in
          <code>java.math.BigDecimal:
          <source>Complex lhs = new Complex(1.0, 3.0);
Complex rhs = new Complex(2.0, 5.0);

Complex answer = lhs.add(rhs);       // add two complex numbers
        answer = lhs.subtract(rhs);  // subtract two complex numbers
        answer = lhs.abs();          // absolute value
        answer = lhs.conjugate(rhs); // complex conjugate</source>
        </p>
      </subsection>
      <subsection name="7.3 Complex Transcendental Functions" href="function">
        <p>
          <a href="../apidocs/org/apache/commons/math/complex/Complex.html">
          org.apache.commons.math.complex.Complex</a> also provides
          implementations of serveral transcendental functions involving complex
          number arguments.  Prior to version 1.2, these functions were provided
          by <a href="../apidocs/org/apache/commons/math/complex/ComplexUtils.html">
          org.apache.commons.math.complex.ComplexUtils</a> in a way similar to the real
          number functions found in <code>java.lang.Math, but this has been
          deprecated.  These operations provide the means to compute the log, sine,
          tangent, and other complex values :
          <source>Complex first  = new Complex(1.0, 3.0);
Complex second = new Complex(2.0, 5.0);

Complex answer = first.log();        // natural logarithm.
        answer = first.cos();        // cosine
        answer = first.pow(second);  // first raised to the power of second</source>
        </p>
      </subsection>
      <subsection name="7.4 Complex Formatting and Parsing" href="formatting">
        <p>
          <code>Complex instances can be converted to and from strings
          using the<a href="../apidocs/org/apache/commons/math/complex/ComplexFormat.html">
          org.apache.commons.math.complex.ComplexFormat</a> class.
          <code>ComplexFormat is a java.text.Format
          extension and, as such, is used like other formatting objects (e.g.
          <code>java.text.SimpleDateFormat):
          <source>ComplexFormat format = new ComplexFormat(); // default format
Complex c = new Complex(1.1111, 2.2222);
String s = format.format(c); // s contains "1.11 + 2.22i"</source>
        </p>
        <p>
          To customize the formatting output, one or two
          <code>java.text.NumberFormat instances can be used to construct
          a <code>ComplexFormat.  These number formats control the
          formatting of the real and imaginary values of the complex number:
          <source>NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(3);
nf.setMaximumFractionDigits(3);

// create complex format with custom number format
// when one number format is used, both real and
// imaginary parts are formatted the same
ComplexFormat cf = new ComplexFormat(nf);
Complex c = new Complex(1.11, 2.2222);
String s = format.format(c); // s contains "1.110 + 2.222i"

NumberFormat nf2 = NumberFormat.getInstance();
nf.setMinimumFractionDigits(1);
nf.setMaximumFractionDigits(1);

// create complex format with custom number formats
cf = new ComplexFormat(nf, nf2);
s = format.format(c); // s contains "1.110 + 2.2i"</source>
        </p>
        <p>
          Another formatting customization provided by
          <code>ComplexFormat is the text used for the imaginary
          designation.  By default, the imaginary notation is "i" but, it can be
          manipulated using the <code>setImaginaryCharacter method.
        </p>
        <p>
          Formatting inverse operation, parsing, can also be performed by
          <code>ComplexFormat.  Parse a complex number from a string,
          simply call the <code>parse method:
          <source>ComplexFormat cf = new ComplexFormat();
Complex c = cf.parse("1.110 + 2.222i");</source>
        </p>
      </subsection>
    </section>
  </body>
</document>

Other Commons Math examples (source code examples)

Here is a short list of links related to this Commons Math complex.xml source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.