Logo
Distributed Genetic Programming Framework
print print

File org.dgpf.gp.regression.expressions.binary.MaxHandler.java

Here you can find all the information about the file org.dgpf.gp.regression.expressions.binary.MaxHandler.java. You may explore it here or download it onto your local disk.
/*
 * Copyright (c) 2006 Thomas Weise
 * 
 * E-Mail           : tweise@gmx.de
 * Creation Date    : 2006-07-25 16:15:36
 * Original Filename: org.dgpf.gp.regression.expressions.binary.AddHandler.java
 * Version          : 1.0.0
 * Last modification: 2006-07-25
 *                by: Thomas Weise
 * 
 * License          : GNU LESSER GENERAL PUBLIC LICENSE
 *                    Version 2.1, February 1999
 *                    You should have received a copy of this license along
 *                    with this library; if not, write to the Free Software
 *                    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *                    MA 02111-1307, USA or download the license under
 *                    http://www.gnu.org/copyleft/lesser.html.
 *                    
 * Warranty         : This software is provided "as is" without any
 *                    warranty; without even the implied warranty of
 *                    merchantability or fitness for a particular purpose.
 *                    See the Gnu Lesser General Public License for more
 *                    details.
 */

 
package org.dgpf.gp.regression.expressions.binary;

import org.dgpf.gp.regression.base.Expression;
import org.dgpf.gp.regression.base.IWrapableExpressionHandler;
import org.dgpf.gp.regression.expressions.parameterless.Constant;

/**
 * The handler for the max-expression.
 *
 * @author Thomas Weise
 */

public final  class MaxHandler extends BinaryExpressionHandler
  { 
/**
 * The serial version uid.
 */

  private static  final long   serialVersionUID  = 1;
  
/**
 * The shared singleton instance of the max expression handler.
 */

  public static final IWrapableExpressionHandler INSTANCE =
                          new MaxHandler();

/**
 * Create the max-handler. You cannot do this, use the globally shared
 * singleton instance.
 * @see #INSTANCE
 */

  private MaxHandler()
    {
    super(null);
    }
  

/**
 * Create an expression of the type this handler handles using the
 * specified sub-expressions.
 * @param p_sub_1   The first sub-expression.
 * @param p_sub_2   The second sub-expression.
 * @return  The newly created expression with the two sub-expressions.
 */

  @Override
  public    final  Expression  do_create (final Expression p_sub_1,
                                          final Expression p_sub_2)
    {
    return new Max(p_sub_1, p_sub_2);
    }
  
  

/**
 * Optimize an expression.
 * @param p_source  The source expression to be optimized.
 * @return  The optimized version of the source expression, or the source
 *          expression itsef.
 */

  @Override
  public  Expression  optimize  (final Expression p_source)
    {
    Expression  l_e1, l_e2;
    Max         l_a;
    
    l_a  = ((Max)(p_source));
    l_e1 = l_a.get_sub_1();
    l_e2 = l_a.get_sub_2();
    
    
    if((l_e1 instanceof Constant) && (l_e2 instanceof Constant))
      {
      return Constant.create(Math.max(((Constant)l_e2).get_value(),
                                   ((Constant)l_e1).get_value()));
      }
    
    if(l_e1.equals(l_e2)) return l_e1;
    
    return l_a;
    }
  

  }

File Information:

file name:MaxHandler.java
package:org.dgpf.gp.regression.expressions.binary
qualified name:org.dgpf.gp.regression.expressions.binary.MaxHandler.java
file type:Java Source File
download location:download http://dgpf.sourceforge.net/source/org/dgpf/gp/regression/expressions/binary/MaxHandler.java
size:3.153 KB (3229 B)
uploaded: 2015-07-22 04:10:56 GMT+0000
last update: 2006-08-10 08:56:56 GMT+0000
last access: 2017-11-19 05:04:04 GMT+0000

statistics online since 2006-01-02.   RSS Feed
Contact us by sending an email to tweise@gmx.de to receive further information, to report errors, or to join our project.
All content on this site (http://dgpf.sourceforge.net/) is LGPL-licensed.
http://dgpf.sourceforge.net/scripts/source/source.php last modified at 2015-07-22 04:10:53 GMT+0000 served at 2017-11-19 05:04:04 GMT+0000.
Valid CSS Valid XHTML 1.1
Valid RSS SourceForge.net Logo