private Parameters analyzeFunction(Map<String, List<TrigerState[]>> func){
        Parameters parameters = new Parameters();
        
        parameters.outputs += func.size();
        for (Map.Entry<String, List<TrigerState[]>> entry : func.entrySet()) {
            String id = entry.getKey();
            List<TrigerState[]> signal = entry.getValue();
            parameters.elements += signal.size();
            if(signal.size() >1 ){
                parameters.elements++;
            }
            for (TrigerState[] state : signal) {
                for(TrigerState s : state){
                    if(s != TrigerState.DOES_NOT_MATTER){
                        parameters.inputs++;
                    }
                }
            }
        }
        
        return parameters;
    }