TheoryQuantifiers::TheoryQuantifiers(Context* c, context::UserContext* u, OutputChannel& out, Valuation valuation, const LogicInfo& logicInfo, QuantifiersEngine* qe) :
  Theory(THEORY_QUANTIFIERS, c, u, out, valuation, logicInfo, qe),
  d_numRestarts(0),
  d_masterEqualityEngine(0)
{
  d_numInstantiations = 0;
  d_baseDecLevel = -1;
  out.handleUserAttribute( "axiom", this );
  out.handleUserAttribute( "conjecture", this );
}
Beispiel #2
0
void Composite::create_output( uint32 id, const Buffer::Config &config, uint32 slot /*= 0*/ ) {
	// First check to make sure this id hasn't already been registered
	if (outputs_.find(id) != outputs_.end()) { assert(false); return; }	// TODO Tell user that it already exists!

	OutputChannel* channel = nullptr;

	// Create the actual buffer
	Buffer* buffer = nullptr;
	Buffer::InitialData data = {};
	//buffer = Buffer::Create(config, data);

	// Create the views
	if (config.bind_flags & Buffer::BIND_RENDER_TARGET) {		
		// Create a default render target view given the buffer and default settings
        std::unique_ptr<RenderTargetView> view = RenderTargetView::Create(buffer, nullptr);

		// Create the channel
		channel = new RenderTargetOutput(std::move(view), slot);

	} else if (config.bind_flags & Buffer::BIND_UNORDERED_ACCESS) {
		// Create a default unordered access view given the buffer and default settings
        std::unique_ptr<UnorderedAccessView> view = UnorderedAccessView::Create(buffer, nullptr);

		// Create the channel
		channel = new UnorderedAccessOutput(std::move(view), slot);

	} else if (config.bind_flags & Buffer::BIND_DEPTH_STENCIL) {
		// Create a default depth stencil given the buffer and default settings
		std::unique_ptr<DepthStencilView> view = DepthStencilView::Create(buffer, nullptr);

		// Create the channel
		channel = new DepthStencilOutput(std::move(view));

	} else {
		// TODO something went really wrong
		assert(false);
	}

	// Create the shader resource view now
	if (config.bind_flags & Buffer::BIND_SHADER_RESOURCE) {
        std::unique_ptr<ShaderResourceView> view = ShaderResourceView::Create(buffer, nullptr);
		channel->set_shader_resource_view(std::move(view));
	}

	// Set the buffer
	channel->set_buffer(std::unique_ptr<Buffer>(buffer));

	// Add channel to the output list
	set_output(id, channel);
}
Beispiel #3
0
TheoryQuantifiers::TheoryQuantifiers(Context* c, context::UserContext* u, OutputChannel& out, Valuation valuation, const LogicInfo& logicInfo) :
    Theory(THEORY_QUANTIFIERS, c, u, out, valuation, logicInfo)
{
  d_numInstantiations = 0;
  d_baseDecLevel = -1;
  out.handleUserAttribute( "axiom", this );
  out.handleUserAttribute( "conjecture", this );
  out.handleUserAttribute( "fun-def", this );
  out.handleUserAttribute( "sygus", this );
  out.handleUserAttribute("quant-name", this);
  out.handleUserAttribute("sygus-synth-grammar", this);
  out.handleUserAttribute( "sygus-synth-fun-var-list", this );
  out.handleUserAttribute( "synthesis", this );
  out.handleUserAttribute( "quant-inst-max-level", this );
  out.handleUserAttribute( "rr-priority", this );
  out.handleUserAttribute( "quant-elim", this );
  out.handleUserAttribute( "quant-elim-partial", this );
}
Beispiel #4
0
bool ProcessPrivate::startRead()
{
    return stdoutChannel.startRead() && stderrChannel.startRead();
}