All Downloads are FREE. Search and download functionalities are using the official Maven repository.

moa.clusterers.clustree.util.Budget Maven / Gradle / Ivy

Go to download

Massive On-line Analysis is an environment for massive data mining. MOA provides a framework for data stream mining and includes tools for evaluation and a collection of machine learning algorithms. Related to the WEKA project, also written in Java, while scaling to more demanding problems.

There is a newer version: 2024.07.0
Show newest version
/*
 *    Budget.java
 *    Copyright (C) 2010 RWTH Aachen University, Germany
 *    @author Sanchez Villaamil ([email protected])
 *
 *    Licensed 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.
 *    
 *    
 */

package moa.clusterers.clustree.util;

/**
 * This is an interface for classes that are to be given along with every data 
 * point inserted in the tree. The tree has to inform the implementation of 
 * this Budget interface of every operation it does, and ask at the
 * places where it can stop prematurely if it should. This models the arrival of
 * a new data point in the stream, before there was enough time to insert the
 * current one.
 */
public interface Budget {

    /**
     * A function for the tree to ask if there is budget(time) left.
     * @return A boolean that is true if the tree
     * should go on, false otherwise.
     */
    public boolean hasMoreTime();

    /**
     * Inform the Budget class that an integer addition has been
     * performed by the tree.
     */
    public void integerAddition();

    /**
     * Inform the Budget that a certain number of integer additions
     * have been done.
     * @param number the number of additions done.
     */
    public void integerAddition(int number);

    /**
     * Inform the Budget class that a double addition has been 
     * performed by the tree.
     */
    public void doubleAddition();

    /**
     * Inform the Budget that a certain number of double additions
     * have been performed.
     * @param number the number of additions done.
     */
    public void doubleAddition(int number);

    /**
     * Inform the Budget class that a integer multiplicaton has 
     * been performed by the tree.
     */
    public void integerMultiplication();

    /**
     * Inform the Budget that a certain number of integer
     * multiplications have been performed.
     * @param number the number of multiplication done.
     */
    public void integerMultiplication(int number);

    /**
     * Inform the Budget class that a double multiplicaton has
     * been performed by the tree.
     */
    public void doubleMultiplication();

    /**
     * Inform the Budget that a certain number of double 
     * multiplications have been performed.
     * @param number the number of multiplications done.
     */
    public void doubleMultiplication(int number);

    /**
     * Inform the Budget class that a integer division has
     * been performed by the tree.
     */
    public void integerDivision();

    /**
     * Inform the Budget that a certain number of integer divisions
     * have been performed.
     * @param number the number of division done.
     */
    public void integerDivision(int number);

    /**
     * Inform the Budget class that a double division has
     * been performed by the tree.
     */
    public void doubleDivision();

    /**
     * Inform the Budget that a certain number of double divisions
     * have been performed.
     * @param number the number of divisions done.
     */
    public void doubleDivision(int number);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy