Ejemplo n.º 1
0
int GetT()
{
	int val = GetP();
	while (*s == '/' || *s == '*')
	{
		int op = *s++;
		int val2 = GetP();
		if (op == '/') val /= val2;
		if (op == '*') val *= val2;
	}
	return val;
}
ClusterGraph::ClusterGraph(const ClusterStructure& clusterStructure, const std::vector<AutomataStatesPair>& stablePairs): adjacencyList(0, 0), clusterStructure(clusterStructure), stablePairs(stablePairs) {
	adjacencyList = MultiListGraph<ClusterGraphEdge>(clusterStructure.GetClusterCount(), 2*stablePairs.size());

	for (size_t i = 0; i < stablePairs.size(); ++i) {
		auto stablePair = stablePairs[i];
		int pCluster = clusterStructure.GetVertexInfos()[stablePair.GetP()].clusterIndex;
		int qCluster = clusterStructure.GetVertexInfos()[stablePair.GetQ()].clusterIndex;

		if (!clusterStructure.IsBigCluster(pCluster) || !clusterStructure.IsBigCluster(qCluster))
			continue;

		adjacencyList.AddEdge(pCluster, ClusterGraphEdge(qCluster, stablePair.GetP(), stablePair.GetQ()));
		adjacencyList.AddEdge(qCluster, ClusterGraphEdge(pCluster, stablePair.GetQ(), stablePair.GetP()));
	}

	size_t n = clusterStructure.GetSingleLetterGraph().size();
	levels = std::vector<int>(n, -1);
	for (size_t i = 0; i < n; ++i) {
		levels[i] = GetLevel(i, clusterStructure, levels);
	}
}
Ejemplo n.º 3
0
void PIDController::InitTable(std::shared_ptr<ITable> table) {
  if (m_table != nullptr) m_table->RemoveTableListener(this);
  m_table = table;
  if (m_table != nullptr) {
    m_table->PutNumber(kP, GetP());
    m_table->PutNumber(kI, GetI());
    m_table->PutNumber(kD, GetD());
    m_table->PutNumber(kF, GetF());
    m_table->PutNumber(kSetpoint, GetSetpoint());
    m_table->PutBoolean(kEnabled, IsEnabled());
    m_table->AddTableListener(this, false);
  }
}
Ejemplo n.º 4
0
int GetT()
{
    int val = GetP();

    while (*Eq == '*' || *Eq == '/')
    {
        int op = *Eq;
        Eq++;

        if ((*Eq < '0' || '9' < *Eq) && *Eq != '(')
        {
            throw 3;
        }
        else
        {
        int val2 = GetP();

        if (op == '*')
        {
            val *= val2;
            buf[buf_count++] = op;
        }
        if (op == '/')
        {
            if (val2 == 0)
            {
                throw 0;
            }

            val = val / val2;
            buf[buf_count++] = op;
        }
        }
    }
    return val;
}
Ejemplo n.º 5
0
NetworkTable* PIDJaguar::GetTable()
{
	if (m_table == NULL)
	{
		m_table = new NetworkTable();

		m_table->PutDouble(kP, GetP());
		m_table->PutDouble(kI, GetI());
		m_table->PutDouble(kD, GetD());
		m_table->PutDouble(kSetpoint, Get());
		m_table->PutBoolean(kEnabled, m_bEnabled);

		m_table->AddChangeListenerAny(this);
	}
	return m_table;
}
Ejemplo n.º 6
0
 void CppDiffieHellman::Init()
 {
   _p_int = CryptoPP::Integer(reinterpret_cast<byte *>(GetP().data()), GetP().count());
   _q_int = CryptoPP::Integer(reinterpret_cast<byte *>(GetQ().data()), GetQ().count());
   _g_int = CryptoPP::Integer(reinterpret_cast<byte *>(GetG().data()), GetG().count());
 }