Пример #1
0
std::shared_ptr< ExhaustiveLPOModelTrainer > makeExhaustiveTrainer( const ExhaustiveLPOModel & that, const std::vector< std::shared_ptr< ImageOverSegmentation > >& ios, const std::vector< T >& gt ) {
    std::string name = typeStr(that);

    std::vector< VectorXf > params = that.all_params_;
    const int N = ios.size(), M = params.size();
    std::vector<int> oid( gt.size()+1 );
    std::transform( gt.begin(), gt.end(), oid.data()+1, static_cast<int(*)(const T&)>(&no) );
    std::partial_sum( oid.begin(), oid.end(), oid.begin() );

    std::vector< float > avg_prop( params.size(), 0. );
    std::vector< std::vector< float > > iou( params.size(), std::vector< float >(oid.back(),0.f) );
    #pragma omp parallel for
    for( int i=0; i<N; i++ ) {
        std::vector<Proposals> s = that.generateProposals( *ios[i], params );
        for( int j=0; j<M; j++ ) {
            Proposals p = s[j];

            SegmentationOverlap o(p.s, gt[i]);
            const int no = o.nObjects();
            eassert( oid[i]+no == oid[i+1] );

            auto best_iou = VectorXf::Map(iou[j].data()+oid[i],no);
            int n = p.p.rows();
            for( int k=0; k<n; k++ )
                best_iou = best_iou.array().max( o.iou( p.p.row(k) ).array() );

            #pragma omp atomic
            avg_prop[j] += 1.0 * n / N;
        }
    }
    return std::make_shared<ExhaustiveLPOModelTrainerImplementation>( name, params, iou, avg_prop );
}
Пример #2
0
void MapListExtractInner::viewStructure(ostream& ostr) const
{
  EnumertatorProblemView pv(oid(),"Extract inner automorphisms from a list",
			    Text("Extract inner automorphisms from") +
			    Name( theList ) ,
			    helpID("MapListExtractInner",
				   theList.getGroup()),
			    Text("inner auto")
			    );
  
  //  pv.addParameter(EditInteger("minL","Minimal length ",0,1,1,30000));
  // pv.addParameter(EditInteger("maxL","Maximal length ",0,30000,1,30000));
  
  
  pv.addProblem( Subproblem("Sp1",ThisARCSlotID(),
			    Text("For the use of the problem"),40));
  
  //RadioButton rRB1("ToFile","Extract to a file");
  //RadioButton rRB2("ToList","Extract to another list");
    
  // RadioButtonGroup extractRBG("ExtractTo");
  
  //  extractRBG.add(rRB1);
  //  extractRBG.add(rRB2);

  //  pv.addParameter(extractRBG);
 
  submit(ostr, pv);

}
Пример #3
0
VxStdProxy::~VxStdProxy ()
    {
    // Remove this proxy from list of all known proxies
    s_allProxiesMutex.lock ();
    OXID2RemApartment_t::iterator i = s_allProxies.find (oxid ());
    if (i != s_allProxies.end ())
        (*i).second.erase (oid ());
    s_allProxiesMutex.unlock ();

    // Remove our OID from the ping list..
    SCM::theSCM()->oidDel (m_resAddr, m_oid);

    // Disconnect all facelets belonging to this proxy-object...
    FACELETMAP::iterator j;

    VxCritSec cs (m_mutex);
    
    for (j = m_facelets.begin (); j != m_facelets.end (); ++j)
	{
        // @@@ FIXME have a fake interface-proxy for IUnknown
        if ((*j).second.pProxy)
            (*j).second.pProxy->Disconnect ();
	}

    // Free the RemUnknown facelet
    if (m_pRemUnkFacelet)
        {
        m_pRemUnkFacelet->pProxy->Disconnect ();
        delete m_pRemUnkFacelet;
        }
    }
Пример #4
0
void SGListExtractOfRank::viewStructure(ostream& ostr) const
{
  EnumertatorProblemView pv(oid(),"Extract subgroups of a given rank from a list",
			    Text("Extract subgroups of a given rank from ") +
			    Name( theList ) ,
			    helpID("SGListExtractOfRank",
				   theList.getGroup()),
			    Text("rank sgs")
			    );
  
  pv.addParameter(EditInteger("minRank","Minimal rank ",0,0,0,30000));
  pv.addParameter(EditInteger("maxRank","Maximal rank ",0,100,0 ,30000));
  
  
  pv.addProblem( Subproblem("Sp1",ThisARCSlotID(),
			    Text("For the use of the problem"),40));
  
  // RadioButton rRB1("ToFile","Extract to a file");
  // RadioButton rRB2("ToList","Extract to another list");
    
  // RadioButtonGroup extractRBG("ExtractTo");
  
  //    extractRBG.add(rRB1);
  //  extractRBG.add(rRB2);
  
  //  pv.addParameter(extractRBG);
 
  submit(ostr, pv);

}
Пример #5
0
void SMListExtractCommutatorsInFree::viewStructure(ostream& ostr) const
{
  EnumertatorProblemView pv(oid(),"Extract commutators from a list",
			    Text("Extract commutators from ") +
			    Name( theList ) ,
			    helpID("SMListExtractCommutatorsInFree",
				   theList.getGroup()),
			    Text("commut")
			    );
  
  //  RadioButton rRB1("ToFile","Extract to a file");
  //  RadioButton rRB2("ToList","Extract to another list");
  
  //  RadioButtonGroup extractRBG("ExtractTo");
  
  //  extractRBG.add(rRB1);
  //  extractRBG.add(rRB2);
  
  //  pv.addParameter(extractRBG);
  pv.addProblem( Subproblem("Sp1",ThisARCSlotID(),
			    Text("For the use of enumerator"),40));
  
  submit(ostr, pv);

}
	bool PKCS15DODF::parseData(ByteArray data)
	{
		bool result = false;
		SimpleTLV tlv(data);

		while (tlv.decodeTLV())
		{
			switch (tlv.getTag())
			{
			case (unsigned int)0xA1 : /* CHOICE 1 : OidDO */
				{
					PKCS15OID oid(tlv.getValue());

					SCARD_DEBUG("OID DataObject");

					pair<ByteArray, PKCS15OID> newPair(oid.getOID(), oid);
					mapOID.insert(newPair);
				}
				break;

			default :
				SCARD_DEBUG("Unknown tlv : t [%X], l [%d], v %s", tlv.getTag(), tlv.getLength(), tlv.getValue().toString());
				break;
			}
		}

		SCARD_DEBUG("dataList.size() = %d", mapOID.size());

		return result;
	}
 ObjectID ComponentManager::registerContainer(Container* container) {
     unsigned int index = m_containerIndices.allocate();
     m_activeContainers.insert(index);
     ObjectID oid(index);
     m_containers[index] = container;
     std::memset(&m_componentIDs[index * MAX_INTERFACES], 0, sizeof (ComponentID) * MAX_INTERFACES);
     return oid;
 }
Пример #8
0
	void start(BundleContext::Ptr pContext)
	{
		typedef Poco::RemotingNG::ServerHelper<IoT::WebEvent::WebEventNotifier> ServerHelper;
		
		Poco::SharedPtr<IoT::WebEvent::WebEventNotifier> pWebEventNotifier = new WebEventNotifierImpl(pContext);
		std::string oid("io.macchina.services.webeventnotifier");
		ServerHelper::RemoteObjectPtr pWebEventNotifierRemoteObject = ServerHelper::createRemoteObject(pWebEventNotifier, oid);		
		ServiceRef::Ptr pServiceRef = pContext->registry().registerService(oid, pWebEventNotifierRemoteObject, Properties());
	}
Пример #9
0
plRenderRequestMsg::plRenderRequestMsg(plKey sender, plRenderRequestBase* req)
:   plMessage(sender, nil, nil),
    fReq(req)
{
    plUoid oid( kClient_KEY );      // from plFixedKey.h
    plKey key = hsgResMgr::ResMgr()->FindKey(oid);
    AddReceiver(key);

    hsRefCnt_SafeRef(fReq);
}
Пример #10
0
void MibView::GetBulkFromNodeSelectInstance(void)
{
    QTreeWidgetItem *start = NULL;
    
    // Could it be null ?
    if ((start = currentItem()) == NULL)
        return;
   
    QString oid(((MibNode*)start)->GetOid());
    emit GetFromOidSelectInstance(oid, 2);
}
Пример #11
0
void MibView::GetFromNode(void)
{
    QTreeWidgetItem *start = NULL;
    
    // Could it be null ?
    if ((start = currentItem()) == NULL)
        return;
    QString oid(((MibNode*)start)->GetOid());
    oid += ".0";
    emit GetFromOid(oid, 0);
}
Пример #12
0
void MibView::VarbindsFromNode(void)
{
    QTreeWidgetItem *start = NULL;
    
    // Could it be null ?
    if ((start = currentItem()) == NULL)
        return;
    
    QString oid(((MibNode*)start)->GetOid());
    emit VarbindsFromOid(oid);
}
Пример #13
0
const NXPart* NXLFSMessageCache::fetch(const char* msgid)
{
  if(!m_cache || !m_maxdisk) return NULL;

  int r;
  char p[MAX_PATH];
  if(sprintf_s(p, "%s\\%s\\%X\\%s", m_cache, "msg", slot(msgid), msgid) == -1) { r = R(-1, "buffer error"); return NULL; }

  int fd = -1;
  if(_sopen_s(&fd, p, _O_BINARY | _O_RDONLY, _SH_DENYWR, _S_IWRITE)) return NULL;
  if(fd == -1) return NULL;

  auto_close acfd(fd);

  struct stat st;
  if(fstat(fd, &st)) { r = R(-2, "stat error"); return NULL; }
  size_t size = st.st_size;

  if(size <= sizeof(NXPart)) { r = R(-3, "file too small"); return NULL; }

  auto_free<char> data0(size);
  if(size != _read(fd, data0, size)) { r = R(-4, "read error"); return NULL; }

  acfd.close();

  NXPart* data = (NXPart*)((char*)data0);// todo: review
  if(data->version != NXPARTVERSION)
  {
    _unlink(p);
    r = R(-5, "wrong part version"); 
    return NULL; 
  }

  if(strcmp(data->msgid, msgid))
  {
    _unlink(p);
    r = R(-6, "msgid mismatch"); 
    return NULL; 
  }

  if(data->len != size - (sizeof(NXPart)-1))
  {
    _unlink(p);
    r = R(-7, "length mismatch"); 
    return NULL; 
  }

  //data->len = size - (sizeof(NXPart) - 1);

  cfuse(msgid, size);

  data0.release();
  return insert(data, oid());
}
 void ComponentManager::broadcastMessage(const InterfaceTypeID& iid, const MessageBase& msg) {
     //for (int o = 0; o < MAX_CONTAINERS; o++)
     for (std::set<unsigned int>::const_iterator i = m_activeContainers.begin(), e = m_activeContainers.end(); i != e; ++i) {
         ObjectID oid(*i);
         const ComponentID& cid = getComponentID(iid, oid);
         if (cid.isValid()) {
             ComponentBase* c = getComponent(cid);
             if (c)
                 c->handleMessage(msg);
         }
     }
 }
ptr_lib::shared_ptr<der::DerNode>
CertificateSubjectDescription::toDer() const
{
  ptr_lib::shared_ptr<der::DerSequence> root(new der::DerSequence());

  ptr_lib::shared_ptr<der::DerOid> oid(new der::DerOid(oid_));
  ptr_lib::shared_ptr<der::DerPrintableString> value(new der::DerPrintableString(value_));

  root->addChild(oid);
  root->addChild(value);

  return root;
}
const plPythonSDLModifier* plPythonSDLModifier::FindAgeSDL()
{
    const char* ageName = cyMisc::GetAgeName();

    if (strcmp(ageName, "") == 0)
        return nil; // don't have an age, probably because we're running in max?

    // find the Age Global object
    plLocation loc = plKeyFinder::Instance().FindLocation(ageName,plAgeDescription::GetCommonPage(plAgeDescription::kGlobal));
    if ( loc.IsValid() )
    {
        plUoid oid(loc,plPythonFileMod::Index(), plPythonFileMod::kGlobalNameKonstant);
        if ( oid.IsValid() )
        {
            plKey key = hsgResMgr::ResMgr()->FindKey(oid);

            plPythonFileMod *pfmod = plPythonFileMod::ConvertNoRef(key ? key->ObjectIsLoaded() : nil);
            if ( pfmod )
            {
                plPythonSDLModifier * sdlMod = pfmod->GetSDLMod();
                if(sdlMod)
                    // we found it!
                    return sdlMod;
                
                plNetClientApp::StaticErrorMsg("pfmod %s has a nil python SDL modifier for age sdl %s", 
                    pfmod->GetKeyName().s_str("?"), ageName);
            }
            else
            {
                if (!key)
                    plNetClientApp::StaticErrorMsg("nil key %s for age sdl %s", ageName, oid.StringIze().c_str());
                else
                if (!key->ObjectIsLoaded())
                    plNetClientApp::StaticErrorMsg("key %s not loaded for age sdl %s", 
                        key->GetName().s_str("?"), ageName);
                else
                if (!plPythonFileMod::ConvertNoRef(key->ObjectIsLoaded()))
                    plNetClientApp::StaticErrorMsg("key %s is not a python file mod for age sdl %s", 
                        key->GetName().s_str("?"), ageName);
            }
        }
        else
            plNetClientApp::StaticErrorMsg("Invalid plUoid for age sdl %s", ageName);
    }
    else
        plNetClientApp::StaticErrorMsg("Invalid plLocation for age sdl %s", ageName);

    // couldn't find one (maybe because we didn't look)
    return nil;
}
Пример #17
0
ptr_lib::shared_ptr<DerNode>
CertificateSubjectDescription::toDer() const
{
  ptr_lib::shared_ptr<DerNode::DerSequence> root(new DerNode::DerSequence());

  ptr_lib::shared_ptr<DerNode::DerOid> oid(new DerNode::DerOid(oid_));
  ptr_lib::shared_ptr<DerNode::DerPrintableString> value
    (new DerNode::DerPrintableString((const uint8_t*)&value_[0], value_.size()));

  root->addChild(oid);
  root->addChild(value);

  return root;
}
Пример #18
0
void DaoWorker::readAllScans()
{
    qDebug()<<"dao worker read all scans: PID = "<<QThread::currentThreadId();
    emit setWorkerProgressBarToRunningStateSignal();
    std::vector<std::shared_ptr<Scan>> scansInMainViewer;
    connect(this, SIGNAL(convertScansToModelSignal(std::vector<std::shared_ptr<Scan>>)),MainWindow::GetMainWindow(), SLOT(convertScansToModelSlot(std::vector<std::shared_ptr<Scan>>)));
    //check scansInMainViewer
    int t = MainWindow::GetMainWindow()->getMaximumGettingDataTimes();
    while(--t >= 0)
    {
        scansInMainViewer = ScanDao::instance()->readAllScans();
        bool success = true;
        for(int i = 0; i < scansInMainViewer.size(); i++)
        {
            //qDebug()<<"read all scans: "<<QString::number(i);
            //QThread::msleep(2000);//for testing bad networking
            if(isCancelled)
            {
                emit finished();
                return;
            }
            std::shared_ptr<Scan> scan = scansInMainViewer[i];
            try
            {
                mongo::OID oid(scan->getOId());
            }
            catch(...)
            {
                success = false;
                break;
            }
        }

        if(success)
        {
            break;
        }
    }

    //QThread::msleep(12000);//for testing bad networking

    emit setWorkerProgressBarToFinishedStateSignal();

    emit convertScansToModelSignal(scansInMainViewer);

    emit finished();
}
Пример #19
0
	void createClient(const std::string& baseConfig, const std::string& id)
	{
		std::string serverURI = getStringConfig(baseConfig + ".serverURI", "");
		std::string clientId = getStringConfig(baseConfig + ".clientId", "");
		std::string persistencePath = getStringConfig(baseConfig + ".persistence.path", "");
		MQTTClientImpl::Persistence persistence = persistencePath.empty() ? MQTTClientImpl::MQTT_PERSISTENCE_NONE : MQTTClientImpl::MQTT_PERSISTENCE_FILE;

		if (!serverURI.empty())
		{
			MQTTClientImpl::ConnectOptions options;
			options.keepAliveInterval = getIntConfig(baseConfig + ".keepAliveInterval", 60);
			options.retryInterval = getIntConfig(baseConfig + ".retryInterval", 30);
			options.connectTimeout = getIntConfig(baseConfig + ".connectTimeout", 20);
			options.cleanSession = getBoolConfig(baseConfig + ".cleanSession", true);
			options.reliable = getBoolConfig(baseConfig + ".reliable", false);
			options.username = getStringConfig(baseConfig + ".username", "");
			options.password = getStringConfig(baseConfig + ".password", "");
			options.willQoS = getIntConfig(baseConfig + ".will.qos", 0);
			options.mqttVersion = getIntConfig(baseConfig + ".mqttVersion", 0);
			Poco::StringTokenizer tok(getStringConfig(baseConfig + ".serverURIs", ""), ";,", Poco::StringTokenizer::TOK_TRIM | Poco::StringTokenizer::TOK_IGNORE_EMPTY);
			options.serverURIs.assign(tok.begin(), tok.end());

			options.willTopic = getStringConfig(baseConfig + ".will.topic", "");
			options.willMessage = getStringConfig(baseConfig + ".will.message", "");
			options.willRetained = getBoolConfig(baseConfig + ".will.retained", false);
		
			options.sslTrustStore = getStringConfig(baseConfig + ".ssl.trustStore", "");
			options.sslKeyStore = getStringConfig(baseConfig + ".ssl.keyStore", "");
			options.sslPrivateKey = getStringConfig(baseConfig + ".ssl.privateKey", "");
			options.sslPrivateKeyPassword = getStringConfig(baseConfig + ".ssl.privateKeyPassword", "");
			options.sslEnabledCipherSuites = getStringConfig(baseConfig + ".ssl.enabledCipherSuites", "");
			options.sslEnableServerCertAuth = getBoolConfig(baseConfig + ".ssl.enableServerCertAuth", false);
		
			MQTTClientImpl::Ptr pMQTTClient = new MQTTClientImpl(serverURI, clientId, persistence, persistencePath, options);
			std::string oid(Poco::format("io.macchina.mqtt.client#%z", _clients.size()));
			ServerHelper::RemoteObjectPtr pMQTTClientRemoteObject = ServerHelper::createRemoteObject(pMQTTClient, oid);
			Poco::OSP::Properties props;
			props.set("io.macchina.protocol", "io.macchina.mqtt");
			props.set("io.macchina.mqtt.clientId", clientId);	
			props.set("io.macchina.mqtt.serverURI", serverURI);	
			props.set("io.macchina.mqtt.id", id);
			Poco::OSP::ServiceRef::Ptr pServiceRef = _pContext->registry().registerService(oid, pMQTTClientRemoteObject, props);
			
			_clients.push_back(pMQTTClient);
			_serviceRefs.push_back(pServiceRef);
		}
	}
Пример #20
0
CAPDU build_CA_Step_B(const OBJECT_IDENTIFIER_t& CA_OID, const unsigned char sessionid)
{
	MSE mse = MSE(MSE::P1_SET | MSE::P1_COMPUTE, MSE::P2_AT);
	// Build up command data field
	std::vector<unsigned char> oid(CA_OID.buf, CA_OID.buf+CA_OID.size);;
	std::vector<unsigned char> data = TLV_encode(0x80, oid);
	if (sessionid) {
		data.push_back(0xE0);
		data.push_back(0x03);
		data.push_back(0x81);
		data.push_back(0x01);
		data.push_back(sessionid);
	}
	mse.setData(data);

	return mse;
}
    void ComponentManager::initAllComponents(Context& ctx) {
        for (int i = 0; i < MAX_INTERFACES; i++) {
            InterfaceTypeID iid = i;
            for (std::set<unsigned int>::const_iterator i = m_activeContainers.begin(), e = m_activeContainers.end(); i != e; ++i) {

                //for (int o = 0; o < MAX_CONTAINERS; o++) {
                ObjectID oid(*i);
                const ComponentID& cid = getComponentID(iid, oid);
                if (cid.isValid()) {
                    ComponentBase* c = getComponent(cid);
                    if (c)
                        c->init(ctx);
                }
                //}
            }
        }
    }
Пример #22
0
bool ShoeLastTemplateDao::isTemplateOIdValid(std::shared_ptr<ShoeLastTemplate> temp)
{
    if(temp == nullptr)
        return false;

    try
    {
        mongo::OID oid(temp->getOId());
    }
    catch(...)
    {
        LoggerManager::instance()->logInfo("invalid Shoe Last Template oid.");
        return false;
    }

    return true;
}
Пример #23
0
static void save_variable(std::map<snmp::oid, snmp::variant> & variables, ::variable_list * var)
{
    snmp::oid oid(var->name, var->name_length);

    switch (var->type)
    {
    case ASN_OCTET_STR:
        variables[oid] = std::string(reinterpret_cast<char *>(var->val.string), var->val_len);
        break;

    case ASN_INTEGER:
        variables[oid] = *var->val.integer;
        break;

    case ASN_OBJECT_ID:
        variables[oid] = snmp::oid(var->val.objid, var->val_len / sizeof(snmp::oid::subid_type));
        break;
    }
}
Пример #24
0
// getEquivalentPolicy:
//
AsnOid & SPIF::getEquivalentPolicy(AsnOid &policyId)
{
   FUNC("SPIF::getEquivalentPolicy");
   
   bool found = false;
   try
   {
       if (getPolicyId() != policyId)
       {
          EquivalentPolicy *pTmpEquivPolicy=NULL;
          SNACC::EquivalentPolicies::iterator i;

          // search EquivalentPolicies sequence for policyId
          //
          for (i = spiftoSign.equivalentPolicies->begin();
               i != spiftoSign.equivalentPolicies->end(); i++)
          {
             if (i->securityPolicyId == policyId)
             {
                found = true;
                break;
             }
          }
      
       }

       if (! found )
       {
          AsnOid oid(policyId);
          char    errStr[256];
          sprintf(errStr, "SPIF does not contain an equivalency for %s",
                  (const char *) oid);
          throw ACL_EXCEPT(ACL_NO_EQUIV, errStr);
       }
   }
   catch (SnaccException &e)
   {
      e.push(STACK_ENTRY);
      throw;
   }
   return((AsnOid &)getPolicyId());
} // END OF MEMBER FUNCTION getEquivalentPolicy
Пример #25
0
std::map<snmp::oid, snmp::variant> snmp::session::walk(oid root)
{
    std::map<snmp::oid, snmp::variant> variables;

    oid current_oid = root;
    while (current_oid.starts_with(root))
    {
        auto request = snmp_pdu_create(SNMP_MSG_GETNEXT);
        snmp_add_null_var(request, current_oid.data(), current_oid.size());

        auto response = perform_request(cast_session(_ss), request);

        auto var = response->variables;
        assert(var->next_variable == nullptr);

        save_variable(variables, var);

        current_oid = oid(var->name, var->name_length);
    }

    return variables;
}
Пример #26
0
void DaoWorker::showUserFromScan()
{
    if(targetScan == nullptr)
        return;

    int t = MainWindow::GetMainWindow()->getMaximumGettingDataTimes();
    connect(this, SIGNAL(convertUsersToModelSignal(std::vector<std::shared_ptr<User> >)),MainWindow::GetMainWindow(), SLOT(convertUsersToModelSlot(std::vector<std::shared_ptr<User> >)));
    std::vector<std::shared_ptr<User>> userOfScan;
    while(--t >= 0)
    {
        std::shared_ptr<User> user = ScanDao::instance()->getUserByScan(targetScan->getOId());
        if(user != nullptr)
        {
            bool success = true;
            try
            {
                mongo::OID oid(user->getOId());
            }
            catch(...)
            {
                success = false;
                break;
            }

            if(success)
            {
                userOfScan.push_back(user);
                break;
            }
        }
    }

    emit setWorkerProgressBarToFinishedStateSignal();

    emit convertUsersToModelSignal(userOfScan);

    emit finished();
}
plKey plPythonSDLModifier::FindAgeSDLTarget()
{

    // find the Age Global object
    plLocation loc = plKeyFinder::Instance().FindLocation(cyMisc::GetAgeName(),plAgeDescription::GetCommonPage(plAgeDescription::kGlobal));
    if ( loc.IsValid() )
    {
        plUoid oid(loc,plPythonFileMod::Index(), plPythonFileMod::kGlobalNameKonstant);
        if ( oid.IsValid() )
        {
            plKey key = hsgResMgr::ResMgr()->FindKey(oid);

            plPythonFileMod *pfmod = plPythonFileMod::ConvertNoRef(key ? key->GetObjectPtr() : nil);
            if ( pfmod )
            {
                if (pfmod->GetTarget(0))
                    return pfmod->GetTarget(0)->GetKey();
            }
        }
    }

    // couldn't find one (maybe because we didn't look)
    return nil;
}
Пример #28
0
void IsEltCentral::viewStructure(ostream& ostr) const
{
  ProblemView pv( ostr, oid(), Text("Is element central problem"),
		  Text("Is") + Name( theWord ) + "central in"
		  + Name( Parent( theWord ) ) + "?",
		  helpID("IsEltCentral",theWord.getParent()), 
		  Text(Name(theWord)) + "central ?"
		  );
  

  pv.startItemGroup();
  
  pv.add( Text("For the use of this problem"), ThisARCSlotID(), 50);

  pv.add( Text("Compute abelian invariants of") + Name( Parent( theWord ) ),
	  abelianInvariants.arcSlotID(),
	  15
	  );

    
  pv.startItemGroup
    ( CheckinType( Parent( theWord ) ) != SMFPGroup::ABELIAN &&
      CheckinType( Parent( theWord ) ) != SMFPGroup::NILPOTENT &&
      CheckinType( Parent( theWord ) ) != SMFPGroup::FREE_NILPOTENT
      );

  pv.add( Text("Enumerate normal closure of relators of")
	  + Name( Parent( theWord ) ),
	  normalClosure.arcSlotID(), 50);
  
  pv.add( Text("Seek a rewriting system for") + Name( Parent( theWord ) ),
	  kbSupervisor.arcSlotID(),
	 50
	  );
    
  pv.add( Text("Seek a ShortLex automatic structure for")
	  + Name( Parent( theWord ) ),
	  agSupervisor.arcSlotID(),
	  50
	  );

  pv.add( Text("Run genetic algorithm"), genetic.arcSlotID(), 50 );

  pv.startItemGroup( CheckinType( Parent( theWord ) ) == SMFPGroup::NILPOTENT ||
		     CheckinType( Parent( theWord ) ) == SMFPGroup::FREE_NILPOTENT );

  if (!theWord.getParent().gic.haveNilpotentGroupInited())
    pv.add(Text("Compute a basis of ") + Name( Parent( theWord ) ),
	   computeBasis.arcSlotID(),
	   50
	   );
  
  pv.add(Text("Solve using relation subgroup for")
	 + Name( Parent( theWord ) ),
	 nilpotentWP.arcSlotID(),
	 50
	 );
  
  pv.startItemGroup( CheckinType( Parent( theWord ) ) == SMFPGroup::NILPOTENT ||
		     CheckinType( Parent( theWord ) ) == SMFPGroup::FREE_NILPOTENT ||
		     CheckinType( Parent( theWord ) ) == SMFPGroup::FP
		     );
  int upperBound, currentClass = 2;
  if (theWord.getParent().gic.isNilpotent()==yes ||
      theWord.getParent().gic.isFreeNilpotent()==yes)
    upperBound = theWord.getParent().gic.getNilpotentcyClass()-1;
  else
    upperBound = 10;
  
  while (currentClass <= upperBound && 
	 theWord.getParent().gic.haveNilpotentQuotInited( currentClass ) )
    currentClass++;

  if (!(currentClass > upperBound) )
    pv.add(Text("Compute lower central quotients for") + Name( Parent( theWord ) ),
	   nilpotentQuotients.arcSlotID(),
	   50
	   );
  
  pv.add(Text("Solve using lower central quotients of")
	 + Name( Parent( theWord ) ),
	 nilpotentWPInQuotients.arcSlotID(),
	 50
	 );
 
  pv.done();
}
Пример #29
0
void OrderProblem::viewStructure(ostream& ostr) const
{
  ProblemView pv( ostr, oid(), Text("Order problem"),
		  Text("Find the order of") + Name( theGroup ),
		  helpID("OrderProblem", theGroup),
		  Text("Order") + Name(theGroup)
		  );
/*@db  
  pv.startItemGroup();
  
  
  pv.add(Text("Determine whether the abelianization is infinite"),
	 abelianRank.arcSlotID(),
	 15
	 );
  
  pv.add(Text("Compute abelian invariants of") + Name( theGroup ),
	 abelianInvariants.arcSlotID(),
	 15
	 );
*/  


  pv.startItemGroup( CheckinType( theGroup ) == SMFPGroup::FP ||
		     CheckinType( theGroup ) == SMFPGroup::NILPOTENT 
		     );
   pv.add(Text("Enumerate cosets")
	  + Name( theGroup ),
	  theToddCoxeter.arcSlotID(),
	  100
	  );   
   
   pv.add(Text("GH Todd-Coxeter")
	  + Name( theGroup ),
	  ghToddCoxeter.arcSlotID(),
	  100
	  );   

   pv.startItemGroup( CheckinType( theGroup ) == SMFPGroup::NILPOTENT );
   
   pv.add(Text("Compute a basis of ")
	  + Name( theGroup ),
	  computeBasis.arcSlotID(),
	  100
	  );
 
   pv.startItemGroup( CheckinType( theGroup ) == SMFPGroup::FP );
   
   pv.add(Text("Seek a rewriting system for") + Name( theGroup ),
	  kbSupervisor.arcSlotID(),
	  50
	  );
   
   
   pv.add(Text("Seek a ShortLex automatic structure for") + Name( theGroup ),
	  agSupervisor.arcSlotID(),
	  50
	  );
   
   pv.done();

}
Пример #30
0
bool Commit::operator==(const Commit& comm) const {
  if (commit.get() == nullptr && get() == nullptr) return true;
  else if (commit.get() == nullptr || get() == nullptr) return false;
  return oid() == comm.oid();
}