package de.gaalop.visualizer.zerofinding;
import de.gaalop.cfg.AssignmentNode;
import de.gaalop.cfg.ControlFlowGraph;
import de.gaalop.dfg.MultivectorComponent;
import de.gaalop.api.cfg.AssignmentNodeCollector;
import de.gaalop.visualizer.Differentiater;
import de.gaalop.visualizer.Point3d;
import java.util.HashMap;
import java.util.LinkedList;
/**
* Definies an interface for an zero finding method
* @author christian
*/
public abstract class ZeroFinder {
protected Differentiater differentiater;
public void setDifferentiater(Differentiater differentiater) {
this.differentiater = differentiater;
}
/**
* Finds the zero locations in a list of assignmentnodes, given a global values set
* @param globalValues The set of global values
* @param assignmentNodes The list of assignmentnodes
* @param mapSettings A map with all settings for the zero finder
* @param renderIn2d Rendering in 2d?
* @return The map name of multivector to list of zero locations
*/
public abstract HashMap<String, LinkedList<Point3d>> findZeroLocations(HashMap<MultivectorComponent, Double> globalValues, LinkedList<AssignmentNode> assignmentNodes, HashMap<String, String> mapSettings, boolean renderIn2d);
/**
* Returns the name of the zerofinding method
* @return The name
*/
protected abstract String getName();
@Override
public String toString() {
return getName();
}
public abstract HashMap<String, String> getSettings();
}