ext: dsent: adds a Python interface, drops C++ one
This patch extensively modifies DSENT so that it can be accessed using Python. To access the Python interface, DSENT needs to compiled as a shared library. For this purpose a CMakeLists.txt file has been added. Some of the code that is not required is being removed.
This commit is contained in:
parent
e8ed7b1d1b
commit
c1aecc05e6
178 changed files with 4067 additions and 940 deletions
46
ext/dsent/CMakeLists.txt
Normal file
46
ext/dsent/CMakeLists.txt
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# Copyright (c) 2014 Mark D. Hill and David A. Wood
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met: redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer;
|
||||||
|
# redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution;
|
||||||
|
# neither the name of the copyright holders nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived from
|
||||||
|
# this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cmake_minimum_required (VERSION 2.6)
|
||||||
|
|
||||||
|
project (DSENT)
|
||||||
|
# find out all the file that need to be compiled
|
||||||
|
file(GLOB_RECURSE SRCS "*.h" "*.cc")
|
||||||
|
|
||||||
|
# add the library
|
||||||
|
add_library(dsent MODULE ${SRCS})
|
||||||
|
|
||||||
|
SET(PYTHON_CONFIG "python-config")
|
||||||
|
|
||||||
|
# add the binary tree to the search path for include files
|
||||||
|
include_directories("${CMAKE_SOURCE_DIR}" "`${PYTHON_CONFIG} --includes`")
|
||||||
|
EXEC_PROGRAM(${PYTHON_CONFIG} ARGS --cflags OUTPUT_VARIABLE PYTHON_CFLAGS)
|
||||||
|
EXEC_PROGRAM(${PYTHON_CONFIG} ARGS --ldflags OUTPUT_VARIABLE PYTHON_LFLAGS)
|
||||||
|
|
||||||
|
set_target_properties(dsent PROPERTIES
|
||||||
|
PREFIX ""
|
||||||
|
COMPILE_FLAGS "${PYTHON_CFLAGS} -std=c++11"
|
||||||
|
LINK_FLAGS "${PYTHON_LFLAGS}")
|
|
@ -1,237 +1,209 @@
|
||||||
#include "DSENT.h"
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
#include "DSENT.h"
|
||||||
|
#include "model/std_cells/StdCellLib.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
namespace DSENT
|
namespace DSENT
|
||||||
{
|
{
|
||||||
Model* DSENT::ms_model_ = NULL;
|
static void performTimingOpt(const map<String, String> ¶ms,
|
||||||
bool DSENT::ms_is_verbose_ = false;
|
Model *ms_model)
|
||||||
|
|
||||||
void DSENT::run(int argc_, char** argv_)
|
|
||||||
{
|
{
|
||||||
// Initialize DSENT framework (setup log file, config file, ...)
|
// Get the frequency it is optimizing to
|
||||||
initialize(argc_, argv_);
|
double freq = params.at("Frequency").toDouble();
|
||||||
|
|
||||||
// Build the specified model in the config file
|
// Get all the starting net names
|
||||||
buildModel();
|
const vector<String>& start_net_names =
|
||||||
|
params.at("TimingOptimization->StartNetNames").split("[,]");
|
||||||
|
|
||||||
// Process the specified queries
|
ASSERT((start_net_names.size() > 0),
|
||||||
processQuery();
|
"[Error] Expecting net names in TimingOptimization->StartNetNames");
|
||||||
// Process the specified evaluation
|
|
||||||
processEvaluate();
|
|
||||||
|
|
||||||
// Finalize DSENT framework (close log file, ...)
|
if(start_net_names[0] == "*")
|
||||||
finalize();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSENT::setRuntimeOptions(OptionParser* option_parser_)
|
|
||||||
{
|
|
||||||
option_parser_->addOption("-cfg", "ConfigFilename", true, "filename", false, "",
|
|
||||||
"Specify the config filename.");
|
|
||||||
|
|
||||||
option_parser_->addOption("-available_models", "IsListModels", false, "", true, "false",
|
|
||||||
"List available DSENT models.");
|
|
||||||
|
|
||||||
option_parser_->addOption("-log", "LogFilename", true, "filename", true, "./dsent.log",
|
|
||||||
"Specify the log filename.");
|
|
||||||
|
|
||||||
option_parser_->addOption("-overwrite", "OverwriteString", true, "options", true, "",
|
|
||||||
"Overwrite dynamically the options set in the config file. Options are separated by a comma (;).");
|
|
||||||
|
|
||||||
option_parser_->addOption("-overwrite_tech", "OverwriteTechString", true, "options", true, "",
|
|
||||||
"Overwrite dynamically the options set in the technology file. Options are separated by a comma (;).");
|
|
||||||
|
|
||||||
option_parser_->addOption("-print_config", "IsPrintConfig", false, "", true, "false",
|
|
||||||
"Print the config used at DSENT runtime.");
|
|
||||||
|
|
||||||
option_parser_->addOption("-query", "QueryString", true, "query string", true, "",
|
|
||||||
"Specify the list of items to query. This command is the same as owerwriting the 'QueryString'.");
|
|
||||||
|
|
||||||
option_parser_->addOption("-eval", "EvaluateString", true, "evaluate string", true, "",
|
|
||||||
"Specify the list of statements to evaluate. This command is the same as owerwriting the 'EvaluateString'.");
|
|
||||||
|
|
||||||
option_parser_->addOption("-verbose", "IsVerbose", false, "", true, "false",
|
|
||||||
"Enable verbose mode which prints out more detailed messages.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSENT::initialize(int argc_, char** argv_)
|
|
||||||
{
|
|
||||||
OptionParser* option_parser = new OptionParser();
|
|
||||||
|
|
||||||
// Init the option parser and setup available options
|
|
||||||
setRuntimeOptions(option_parser);
|
|
||||||
|
|
||||||
// Parse the options
|
|
||||||
option_parser->parseArguments(argc_, argv_);
|
|
||||||
|
|
||||||
// If -available_models is specified, print out a list of available
|
|
||||||
// models and exit DSENT.
|
|
||||||
if(option_parser->get("IsListModels").toBool())
|
|
||||||
{
|
{
|
||||||
ModelGen::printAvailableModels();
|
// Optimize from all input ports
|
||||||
exit(0);
|
ElectricalModel* electrical_model = (ElectricalModel*)ms_model;
|
||||||
}
|
|
||||||
|
|
||||||
// Init the log file
|
ElectricalTimingOptimizer timing_optimizer(
|
||||||
Log::allocate(option_parser->get("LogFilename"));
|
"Optimizer", electrical_model->getTechModel());
|
||||||
|
timing_optimizer.setModel(electrical_model);
|
||||||
|
timing_optimizer.construct();
|
||||||
|
timing_optimizer.update();
|
||||||
|
|
||||||
// Init the config file
|
ElectricalTimingTree timing_tree(
|
||||||
Config::allocate(option_parser->get("ConfigFilename"));
|
timing_optimizer.getInstanceName(), &timing_optimizer);
|
||||||
Config* dsent_config = Config::getSingleton();
|
|
||||||
|
|
||||||
// Overwrite the existing options
|
const Map<PortInfo*>* input_ports = timing_optimizer.getInputs();
|
||||||
dsent_config->readString(option_parser->get("OverwriteString"));
|
Map<PortInfo*>::ConstIterator it_begin = input_ports->begin();
|
||||||
|
Map<PortInfo*>::ConstIterator it_end = input_ports->end();
|
||||||
// Overwrite the technology file
|
Map<PortInfo*>::ConstIterator it;
|
||||||
dsent_config->constructTechModel(option_parser->get("OverwriteTechString"));
|
for(it = it_begin; it != it_end; ++it)
|
||||||
|
|
||||||
ms_is_verbose_ = option_parser->get("IsVerbose").toBool();
|
|
||||||
|
|
||||||
// Overwrite the query string if it is specified from command line
|
|
||||||
if(option_parser->get("QueryString").size() != 0)
|
|
||||||
{
|
|
||||||
dsent_config->set("QueryString", option_parser->get("QueryString"));
|
|
||||||
}
|
|
||||||
// Overwrite the evaluation string if it is specified from command line
|
|
||||||
if(option_parser->get("EvaluateString").size() != 0)
|
|
||||||
{
|
|
||||||
dsent_config->set("EvaluateString", option_parser->get("EvaluateString"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Print the config used for this run
|
|
||||||
if(option_parser->get("IsPrintConfig").toBool())
|
|
||||||
{
|
|
||||||
if(ms_is_verbose_)
|
|
||||||
{
|
{
|
||||||
cout << "Configuration:" << endl;
|
const String& net_name = it->first;
|
||||||
cout << "==============" << endl;
|
Log::printLine("Optimizing net: " + net_name);
|
||||||
|
timing_tree.performTimingOpt(
|
||||||
|
timing_optimizer.getNet(net_name, makeNetIndex(0)), 1.0 / freq);
|
||||||
}
|
}
|
||||||
cout << *dsent_config;
|
|
||||||
|
|
||||||
if(ms_is_verbose_)
|
// Loop the second times
|
||||||
|
for(it = it_begin; it != it_end; ++it)
|
||||||
{
|
{
|
||||||
cout << "==============" << endl;
|
const String& net_name = it->first;
|
||||||
|
Log::printLine("Optimizing net: " + net_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// TODO : parse the net name so that we could do hierarchical optimization
|
||||||
|
// Currently we can only optimize timing at the top level
|
||||||
|
ElectricalModel* electrical_model = (ElectricalModel*)ms_model;
|
||||||
|
ElectricalTimingTree timing_tree(
|
||||||
|
electrical_model->getInstanceName(), electrical_model);
|
||||||
|
|
||||||
delete option_parser;
|
for(unsigned int i = 0; i < start_net_names.size(); ++i)
|
||||||
return;
|
{
|
||||||
|
const String& net_name = start_net_names[i];
|
||||||
|
timing_tree.performTimingOpt(
|
||||||
|
electrical_model->getNet(net_name), 1.0 / freq);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSENT::buildModel()
|
static void reportTiming(const map<String, String> ¶ms, Model *ms_model)
|
||||||
{
|
{
|
||||||
Config* dsent_config = Config::getSingleton();
|
// Get all the starting net names
|
||||||
|
const vector<String>& start_net_names =
|
||||||
|
params.at("ReportTiming->StartNetNames").split("[,]");
|
||||||
|
|
||||||
|
ElectricalModel* electrical_model = (ElectricalModel*)ms_model;
|
||||||
|
ElectricalTimingTree timing_tree(
|
||||||
|
electrical_model->getInstanceName(), electrical_model);
|
||||||
|
|
||||||
|
cout << "Report timing:" << endl;
|
||||||
|
cout << "==============" << endl;
|
||||||
|
for(unsigned int i = 0; i < start_net_names.size(); ++i)
|
||||||
|
{
|
||||||
|
const String& net_name = start_net_names[i];
|
||||||
|
double timing = timing_tree.performCritPathExtract(electrical_model->getNet(net_name));
|
||||||
|
cout << net_name << " = " << timing << endl;
|
||||||
|
}
|
||||||
|
cout << "==============" << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Model *buildModel(const map<String, String> ¶ms,
|
||||||
|
TechModel *tech_model)
|
||||||
|
{
|
||||||
// Create the model specified
|
// Create the model specified
|
||||||
const String& model_name = dsent_config->get("ModelName");
|
const String& model_name = params.at("ModelName");
|
||||||
ms_model_ = ModelGen::createModel(model_name, model_name, dsent_config->getTechModel());
|
Model *ms_model = ModelGen::createModel(model_name, model_name,
|
||||||
|
tech_model);
|
||||||
|
|
||||||
// Construct the model
|
// Construct the model
|
||||||
// Read all parameters the model requires
|
// Read all parameters the model requires
|
||||||
const vector<String>* parameter_names = ms_model_->getParameterNames();
|
const vector<String>* parameter_names = ms_model->getParameterNames();
|
||||||
// For all parameters, grab values from the config file
|
// For all parameters, grab values from the config file
|
||||||
for(vector<String>::const_iterator it = parameter_names->begin(); it != parameter_names->end(); ++it)
|
for(vector<String>::const_iterator it = parameter_names->begin();
|
||||||
|
it != parameter_names->end(); ++it)
|
||||||
{
|
{
|
||||||
const String& parameter_name = *it;
|
const String& parameter_name = *it;
|
||||||
// If it exists in the config file, set the parameter
|
// If it exists in the config file, set the parameter
|
||||||
if(dsent_config->keyExist(parameter_name))
|
if(params.count(parameter_name) > 0)
|
||||||
{
|
{
|
||||||
ms_model_->setParameter(parameter_name, dsent_config->get(parameter_name));
|
ms_model->setParameter(parameter_name,
|
||||||
|
params.at(parameter_name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ms_model_->construct();
|
|
||||||
|
ms_model->construct();
|
||||||
|
|
||||||
// Update the model
|
// Update the model
|
||||||
// Read all properties the model requires
|
// Read all properties the model requires
|
||||||
const vector<String>* property_names = ms_model_->getPropertyNames();
|
const vector<String>* property_names = ms_model->getPropertyNames();
|
||||||
// For all properties, grab values from the config file
|
// For all properties, grab values from the config file
|
||||||
for(vector<String>::const_iterator it = property_names->begin(); it != property_names->end(); ++it)
|
for(vector<String>::const_iterator it = property_names->begin();
|
||||||
|
it != property_names->end(); ++it)
|
||||||
{
|
{
|
||||||
const String& property_name = *it;
|
const String& property_name = *it;
|
||||||
// If it exists in the config file, set the parameter
|
// If it exists in the config file, set the parameter
|
||||||
if(dsent_config->keyExist(property_name))
|
if(params.count(property_name) > 0)
|
||||||
{
|
{
|
||||||
ms_model_->setProperty(property_name, dsent_config->get(property_name));
|
ms_model->setProperty(property_name,
|
||||||
|
params.at(property_name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ms_model_->update();
|
ms_model->update();
|
||||||
|
|
||||||
// Evaluate the model
|
// Evaluate the model
|
||||||
// Perform timing optimization if needed
|
// Perform timing optimization if needed
|
||||||
if(dsent_config->getIfKeyExist("IsPerformTimingOptimization", "false").toBool())
|
if(params.find("IsPerformTimingOptimization") != params.end() &&
|
||||||
|
params.at("IsPerformTimingOptimization").toBool())
|
||||||
{
|
{
|
||||||
performTimingOpt();
|
performTimingOpt(params, ms_model);
|
||||||
}
|
}
|
||||||
ms_model_->evaluate();
|
ms_model->evaluate();
|
||||||
|
|
||||||
// Report timing if needed
|
// Report timing if needed
|
||||||
if(dsent_config->getIfKeyExist("IsReportTiming", "false").toBool())
|
if(params.count("IsReportTiming") > 0 &&
|
||||||
|
params.at("IsReportTiming") != "false")
|
||||||
{
|
{
|
||||||
reportTiming();
|
reportTiming(params, ms_model);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return ms_model;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSENT::processQuery()
|
static const void* processQuery(const String& query_str_,
|
||||||
{
|
Model *ms_model, bool is_print_)
|
||||||
Config* dsent_config = Config::getSingleton();
|
|
||||||
vector<String> queries = dsent_config->get("QueryString").split(" ;\r\n");
|
|
||||||
|
|
||||||
if(ms_is_verbose_)
|
|
||||||
{
|
|
||||||
cout << "Query results:" << endl;
|
|
||||||
cout << "==============" << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(unsigned int i = 0; i < queries.size(); ++i)
|
|
||||||
{
|
|
||||||
const String& curr_query = queries[i];
|
|
||||||
|
|
||||||
if(ms_is_verbose_)
|
|
||||||
{
|
|
||||||
String str = "Process query: '" + curr_query + "'";
|
|
||||||
cout << str << endl;
|
|
||||||
cout << String(str.size(), '-') << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
processQuery(curr_query, true);
|
|
||||||
|
|
||||||
if(ms_is_verbose_)
|
|
||||||
{
|
|
||||||
cout << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(ms_is_verbose_)
|
|
||||||
{
|
|
||||||
cout << "==============" << endl;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const void* DSENT::processQuery(const String& query_str_, bool is_print_)
|
|
||||||
{
|
{
|
||||||
vector<String> type_split = query_str_.splitByString(Model::TYPE_SEPARATOR);
|
vector<String> type_split = query_str_.splitByString(Model::TYPE_SEPARATOR);
|
||||||
ASSERT((type_split.size() == 2), "[Error] Invalid query format: " + query_str_);
|
ASSERT((type_split.size() == 2), "[Error] Invalid query format: " + query_str_);
|
||||||
String query_type = type_split[0];
|
String query_type = type_split[0];
|
||||||
|
|
||||||
vector<String> detail_split = type_split[1].splitByString(Model::DETAIL_SEPARATOR);
|
vector<String> detail_split =
|
||||||
|
type_split[1].splitByString(Model::DETAIL_SEPARATOR);
|
||||||
|
|
||||||
ASSERT((detail_split.size() == 2), "[Error] Invalid query format: " + query_str_);
|
ASSERT((detail_split.size() == 2), "[Error] Invalid query format: " + query_str_);
|
||||||
String query_detail = detail_split[1];
|
String query_detail = detail_split[1];
|
||||||
|
|
||||||
vector<String> subfield_split = detail_split[0].splitByString(Model::SUBFIELD_SEPARATOR);
|
vector<String> subfield_split =
|
||||||
ASSERT(((subfield_split.size() == 2) || (subfield_split.size() == 1)), "[Error] Invalid query format: " + query_str_);
|
detail_split[0].splitByString(Model::SUBFIELD_SEPARATOR);
|
||||||
|
|
||||||
|
ASSERT(((subfield_split.size() == 2) || (subfield_split.size() == 1)),
|
||||||
|
"[Error] Invalid query format: " + query_str_);
|
||||||
|
|
||||||
String query_hier = subfield_split[0];
|
String query_hier = subfield_split[0];
|
||||||
String query_subfield = "";
|
String query_subfield = "";
|
||||||
|
|
||||||
if(subfield_split.size() == 2)
|
if(subfield_split.size() == 2)
|
||||||
{
|
{
|
||||||
query_subfield = subfield_split[1];
|
query_subfield = subfield_split[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
const void* query_result = ms_model_->parseQuery(query_type, query_hier, query_subfield);
|
const void* query_result = ms_model->parseQuery(query_type, query_hier,
|
||||||
|
query_subfield);
|
||||||
if(query_type == "Property")
|
if(query_type == "Property")
|
||||||
{
|
{
|
||||||
const PropertyMap* property = (const PropertyMap*)query_result;
|
const PropertyMap* property = (const PropertyMap*)query_result;
|
||||||
|
@ -268,156 +240,104 @@ namespace DSENT
|
||||||
return query_result;
|
return query_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSENT::finalize()
|
void processQuery(const vector<String> &queries,
|
||||||
|
Model *ms_model, vector<String> &outputs)
|
||||||
{
|
{
|
||||||
// Release the constructed model
|
for(unsigned int i = 0; i < queries.size(); ++i)
|
||||||
delete ms_model_;
|
{
|
||||||
ms_model_ = NULL;
|
const String& curr_query = queries[i];
|
||||||
|
processQuery(curr_query, ms_model, true);
|
||||||
|
|
||||||
// Release the config file
|
}
|
||||||
Config::release();
|
}
|
||||||
|
|
||||||
|
static TechModel* constructTechModel(const map<String, String>& params)
|
||||||
|
{
|
||||||
|
// Allocate static TechModel instance
|
||||||
|
const String& electrical_tech_model_filename =
|
||||||
|
params.at("ElectricalTechModelFilename");
|
||||||
|
|
||||||
|
TechModel* tech_model = new TechModel();
|
||||||
|
tech_model->readFile(electrical_tech_model_filename);
|
||||||
|
|
||||||
|
if (params.count("PhotonicTechModelFilename") != 0) {
|
||||||
|
const String& photonic_tech_model_filename =
|
||||||
|
params.at("PhotonicTechModelFilename");
|
||||||
|
tech_model->readFile(photonic_tech_model_filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allocate static StdCellLib instance
|
||||||
|
StdCellLib* std_cell_lib = new StdCellLib(tech_model);
|
||||||
|
|
||||||
|
// Set the StdCellLib pointer in static TechModel instance
|
||||||
|
tech_model->setStdCellLib(std_cell_lib);
|
||||||
|
return tech_model;
|
||||||
|
}
|
||||||
|
|
||||||
|
Model *initialize(const char *config_file_name, map<String, String> &config)
|
||||||
|
{
|
||||||
|
// Init the log file
|
||||||
|
Log::allocate("/tmp/dsent.log");
|
||||||
|
|
||||||
|
// Init the config file
|
||||||
|
LibUtil::readFile(config_file_name, config);
|
||||||
|
|
||||||
|
// Overwrite the technology file
|
||||||
|
TechModel *tech_model = constructTechModel(config);
|
||||||
|
|
||||||
|
// Build the specified model in the config file
|
||||||
|
return buildModel(config, tech_model);
|
||||||
|
}
|
||||||
|
|
||||||
|
void finalize(map<String, String> &config, Model *ms_model)
|
||||||
|
{
|
||||||
|
// Delete the model
|
||||||
|
delete ms_model;
|
||||||
|
|
||||||
|
// Discard all the (key, value) pairs.
|
||||||
|
config.clear();
|
||||||
|
|
||||||
// Release the log file
|
// Release the log file
|
||||||
Log::release();
|
Log::release();
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DSENT::performTimingOpt()
|
void run(const map<String, String> ¶ms, Model *ms_model,
|
||||||
|
map<string, double> &outputs)
|
||||||
{
|
{
|
||||||
Config* dsent_config = Config::getSingleton();
|
// Process the specified queries
|
||||||
|
const auto &it = params.find("EvaluateString");
|
||||||
// Get the frequency it is optimizing to
|
if(it == params.end()) {
|
||||||
double freq = dsent_config->get("Frequency").toDouble();
|
return;
|
||||||
|
}
|
||||||
// Get all the starting net names
|
|
||||||
const vector<String>& start_net_names = dsent_config->get("TimingOptimization->StartNetNames").split("[,]");
|
String eval_str = it->second;
|
||||||
|
|
||||||
ASSERT((start_net_names.size() > 0), "[Error] Expecting net names in TimingOptimization->StartNetNames");
|
if (eval_str == "") {
|
||||||
|
return;
|
||||||
if(start_net_names[0] == "*")
|
|
||||||
{
|
|
||||||
// Optimize from all input ports
|
|
||||||
ElectricalModel* electrical_model = (ElectricalModel*)ms_model_;
|
|
||||||
|
|
||||||
ElectricalTimingOptimizer timing_optimizer("Optimizer", electrical_model->getTechModel());
|
|
||||||
timing_optimizer.setModel(electrical_model);
|
|
||||||
timing_optimizer.construct();
|
|
||||||
timing_optimizer.update();
|
|
||||||
|
|
||||||
ElectricalTimingTree timing_tree(timing_optimizer.getInstanceName(), &timing_optimizer);
|
|
||||||
|
|
||||||
const Map<PortInfo*>* input_ports = timing_optimizer.getInputs();
|
|
||||||
Map<PortInfo*>::ConstIterator it_begin = input_ports->begin();
|
|
||||||
Map<PortInfo*>::ConstIterator it_end = input_ports->end();
|
|
||||||
Map<PortInfo*>::ConstIterator it;
|
|
||||||
for(it = it_begin; it != it_end; ++it)
|
|
||||||
{
|
|
||||||
const String& net_name = it->first;
|
|
||||||
Log::printLine("Optimizing net: " + net_name);
|
|
||||||
timing_tree.performTimingOpt(timing_optimizer.getNet(net_name, makeNetIndex(0)), 1.0 / freq);
|
|
||||||
//timing_tree.performTimingOpt(electrical_model->getNet(net_name, makeNetIndex(0)), 1.0 / freq);
|
|
||||||
}
|
|
||||||
// Loop the second times
|
|
||||||
for(it = it_begin; it != it_end; ++it)
|
|
||||||
{
|
|
||||||
const String& net_name = it->first;
|
|
||||||
Log::printLine("Optimizing net: " + net_name);
|
|
||||||
//timing_tree.performTimingOpt(timing_optimizer.getNet(net_name, makeNetIndex(0)), 1.0 / freq);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// TODO : parse the net name so that we could do hierarchical optimization
|
|
||||||
// Currently we can only optimize timing at the top level
|
|
||||||
ElectricalModel* electrical_model = (ElectricalModel*)ms_model_;
|
|
||||||
ElectricalTimingTree timing_tree(electrical_model->getInstanceName(), electrical_model);
|
|
||||||
for(unsigned int i = 0; i < start_net_names.size(); ++i)
|
|
||||||
{
|
|
||||||
const String& net_name = start_net_names[i];
|
|
||||||
timing_tree.performTimingOpt(electrical_model->getNet(net_name), 1.0 / freq);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSENT::reportTiming()
|
|
||||||
{
|
|
||||||
Config* dsent_config = Config::getSingleton();
|
|
||||||
|
|
||||||
// Get all the starting net names
|
|
||||||
const vector<String>& start_net_names = dsent_config->get("ReportTiming->StartNetNames").split("[,]");
|
|
||||||
|
|
||||||
ElectricalModel* electrical_model = (ElectricalModel*)ms_model_;
|
|
||||||
ElectricalTimingTree timing_tree(electrical_model->getInstanceName(), electrical_model);
|
|
||||||
|
|
||||||
cout << "Report timing:" << endl;
|
|
||||||
cout << "==============" << endl;
|
|
||||||
for(unsigned int i = 0; i < start_net_names.size(); ++i)
|
|
||||||
{
|
|
||||||
const String& net_name = start_net_names[i];
|
|
||||||
double timing = timing_tree.performCritPathExtract(electrical_model->getNet(net_name));
|
|
||||||
cout << net_name << " = " << timing << endl;
|
|
||||||
}
|
|
||||||
cout << "==============" << endl;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DSENT::processEvaluate()
|
|
||||||
{
|
|
||||||
Config* dsent_config = Config::getSingleton();
|
|
||||||
|
|
||||||
// Return if EvaluatString is empty or not exists
|
|
||||||
if(!dsent_config->keyExist("EvaluateString")) return;
|
|
||||||
|
|
||||||
String eval_str = dsent_config->get("EvaluateString");
|
|
||||||
|
|
||||||
if(eval_str == "") return;
|
|
||||||
|
|
||||||
if(ms_is_verbose_)
|
|
||||||
{
|
|
||||||
cout << "Eval results:" << endl;
|
|
||||||
cout << "==============" << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//if(ms_is_verbose_)
|
|
||||||
//{
|
|
||||||
// String str = "Process evaluation: '" + eval_str + "'";
|
|
||||||
// cout << str << endl;
|
|
||||||
// cout << String(str.size(), '-') << endl;
|
|
||||||
//}
|
|
||||||
DSENTCalculator calc;
|
DSENTCalculator calc;
|
||||||
calc.evaluateString(eval_str);
|
calc.evaluateString(eval_str, params, ms_model, outputs);
|
||||||
|
|
||||||
if(ms_is_verbose_)
|
|
||||||
{
|
|
||||||
cout << "==============" << endl;
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DSENT::DSENTCalculator::DSENTCalculator()
|
DSENTCalculator::DSENTCalculator() {}
|
||||||
{}
|
|
||||||
|
|
||||||
DSENT::DSENTCalculator::~DSENTCalculator()
|
DSENTCalculator::~DSENTCalculator() {}
|
||||||
{}
|
|
||||||
|
|
||||||
double DSENT::DSENTCalculator::getEnvVar(const String& var_name_) const
|
double DSENTCalculator::getEnvVar(const String& var_name_,
|
||||||
|
const map<String, String> &config,
|
||||||
|
Model *ms_model) const
|
||||||
{
|
{
|
||||||
if(m_var_.keyExist(var_name_))
|
if (m_var_.keyExist(var_name_)) {
|
||||||
{
|
|
||||||
return m_var_.get(var_name_);
|
return m_var_.get(var_name_);
|
||||||
}
|
} else if (config.count(var_name_) > 0) {
|
||||||
else if(Config::getSingleton()->keyExist(var_name_))
|
return config.at(var_name_);
|
||||||
{
|
} else {
|
||||||
return Config::getSingleton()->get(var_name_);
|
// Wish there was a way to not have to pass in a stream if we aren't
|
||||||
}
|
// doing anything with it
|
||||||
else
|
const Result* result = (const Result*)DSENT::processQuery(
|
||||||
{
|
var_name_ + "@0", ms_model, false);
|
||||||
const Result* result = (const Result*)DSENT::processQuery(var_name_ + "@0", false);
|
|
||||||
return result->calculateSum();
|
return result->calculateSum();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // namespace DSENT
|
} // namespace DSENT
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,33 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_DSENT_H__
|
#ifndef __DSENT_DSENT_H__
|
||||||
#define __DSENT_DSENT_H__
|
#define __DSENT_DSENT_H__
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
// For DSENT operations
|
// For DSENT operations
|
||||||
#include "libutil/OptionParser.h"
|
|
||||||
#include "libutil/Calculator.h"
|
#include "libutil/Calculator.h"
|
||||||
#include "util/CommonType.h"
|
#include "util/CommonType.h"
|
||||||
#include "util/Config.h"
|
|
||||||
#include "util/Result.h"
|
#include "util/Result.h"
|
||||||
#include "model/Model.h"
|
#include "model/Model.h"
|
||||||
#include "model/ModelGen.h"
|
#include "model/ModelGen.h"
|
||||||
|
@ -19,46 +41,29 @@
|
||||||
|
|
||||||
namespace DSENT
|
namespace DSENT
|
||||||
{
|
{
|
||||||
using LibUtil::OptionParser;
|
|
||||||
using LibUtil::Calculator;
|
using LibUtil::Calculator;
|
||||||
|
|
||||||
class DSENT
|
class DSENTCalculator : public Calculator
|
||||||
{
|
{
|
||||||
protected:
|
|
||||||
class DSENTCalculator : public Calculator
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
DSENTCalculator();
|
|
||||||
virtual ~DSENTCalculator();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual double getEnvVar(const String& var_name_) const;
|
|
||||||
}; // class DSENTCalculator
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void run(int argc_, char** argv_);
|
DSENTCalculator();
|
||||||
|
virtual ~DSENTCalculator();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static void setRuntimeOptions(OptionParser* option_parser_);
|
virtual double getEnvVar(
|
||||||
static void initialize(int argc_, char** argv_);
|
const String& var_name_,
|
||||||
static void buildModel();
|
const std::map<String, String> &Config,
|
||||||
static void processQuery();
|
Model *ms_model) const;
|
||||||
static const void* processQuery(const String& query_str_, bool is_print_);
|
};
|
||||||
static void finalize();
|
|
||||||
|
|
||||||
static void performTimingOpt();
|
Model *initialize(const char *config_file_name,
|
||||||
static void reportTiming();
|
std::map<String, String> &config);
|
||||||
|
|
||||||
static void processEvaluate();
|
void finalize(std::map<String, String> &config,
|
||||||
|
Model *ms_model);
|
||||||
protected:
|
|
||||||
static Model* ms_model_;
|
|
||||||
|
|
||||||
static bool ms_is_verbose_;
|
|
||||||
|
|
||||||
}; // class DSENT
|
|
||||||
|
|
||||||
|
void run(const std::map<String, String> &config, Model *ms_model,
|
||||||
|
std::map<std::string, double> &outputs);
|
||||||
} // namespace DSENT
|
} // namespace DSENT
|
||||||
|
|
||||||
#endif // __DSENT_DSENT_H__
|
#endif // __DSENT_DSENT_H__
|
||||||
|
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
|
|
||||||
# Define the directories that will be compiled
|
|
||||||
DIRS_TO_COMPILE := util tech io \
|
|
||||||
model model/timing_graph \
|
|
||||||
model/std_cells \
|
|
||||||
model/electrical \
|
|
||||||
model/electrical/router \
|
|
||||||
model/optical \
|
|
||||||
model/optical_graph \
|
|
||||||
model/network \
|
|
||||||
model/network/ATAC
|
|
||||||
|
|
||||||
DIRS = $(patsubst %,$(CURDIR)/%,$(DIRS_TO_COMPILE))
|
|
||||||
|
|
||||||
SRCS = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cc))
|
|
||||||
|
|
||||||
OBJS = $(SRCS:%.cc=%.o)
|
|
||||||
|
|
||||||
DEF_FLAGS =
|
|
||||||
INCLUDE_FLAGS = -I$(CURDIR)
|
|
||||||
OPT_FLAGS = -O2 -g
|
|
||||||
WARN_FLAGS = -pedantic -Wall -W #-Wextra -Werror -Wno-write-strings
|
|
||||||
CXXFLAGS = $(OPT_FLAGS) $(WARN_FLAGS) $(INCLUDE_FLAGS) $(DEF_FLAGS)
|
|
||||||
|
|
||||||
LD_LIBS += -lutil
|
|
||||||
LD_FLAGS += -Llibutil
|
|
||||||
|
|
||||||
# Other libraries used
|
|
||||||
LIB_UTIL = libutil/libutil.a
|
|
||||||
|
|
||||||
#TARGET = $(CURDIR)/libdsent.a
|
|
||||||
TARGET = $(CURDIR)/dsent
|
|
||||||
|
|
||||||
all: $(TARGET)
|
|
||||||
|
|
||||||
#$(TARGET): $(OBJS)
|
|
||||||
# ar rcs $@ $^
|
|
||||||
$(TARGET): main.o DSENT.o $(LIB_UTIL) $(OBJS)
|
|
||||||
$(CXX) $(CXXFLAGS) $(LD_FLAGS) $(OBJS) main.o DSENT.o -o $(TARGET) $(LD_LIBS)
|
|
||||||
|
|
||||||
# For general c++ compilation
|
|
||||||
%.o: %.cc
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(LIB_UTIL):
|
|
||||||
$(MAKE) -C $(CURDIR)/libutil
|
|
||||||
|
|
||||||
%/created:
|
|
||||||
mkdir -p $(dir $@)
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
.phony: clean
|
|
||||||
clean:
|
|
||||||
$(RM) -rf main.o DSENT.o $(OBJS) $(TARGET)
|
|
||||||
$(MAKE) -C $(CURDIR)/libutil clean
|
|
|
@ -19,7 +19,7 @@ EvaluateString = \
|
||||||
print " Leakage power: " link_static; \
|
print " Leakage power: " link_static; \
|
||||||
|
|
||||||
# Technology file (see models in tech/models)
|
# Technology file (see models in tech/models)
|
||||||
ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model
|
ElectricalTechModelFilename = ext/dsent/tech/tech_models/Bulk45LVT.model
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Timing optimization
|
# Timing optimization
|
||||||
|
|
|
@ -65,7 +65,7 @@ EvaluateString = \
|
||||||
print " Other: " other_area; \
|
print " Other: " other_area; \
|
||||||
|
|
||||||
# Technology file (see other models in tech/models)
|
# Technology file (see other models in tech/models)
|
||||||
ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model
|
ElectricalTechModelFilename = ext/dsent/tech/tech_models/Bulk45LVT.model
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Timing optimization
|
# Timing optimization
|
||||||
|
|
213
ext/dsent/interface.cc
Normal file
213
ext/dsent/interface.cc
Normal file
|
@ -0,0 +1,213 @@
|
||||||
|
/* Copyright (c) 2014 Mark D. Hill and David A. Wood
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are
|
||||||
|
* met: redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer;
|
||||||
|
* redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution;
|
||||||
|
* neither the name of the copyright holders nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <Python.h>
|
||||||
|
#include <cstdio>
|
||||||
|
|
||||||
|
#include "DSENT.h"
|
||||||
|
#include "libutil/String.h"
|
||||||
|
#include "model/Model.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace LibUtil;
|
||||||
|
|
||||||
|
static PyObject *DSENTError;
|
||||||
|
static PyObject* dsent_initialize(PyObject*, PyObject*);
|
||||||
|
static PyObject* dsent_finalize(PyObject*, PyObject*);
|
||||||
|
static PyObject* dsent_computeRouterPowerAndArea(PyObject*, PyObject*);
|
||||||
|
static PyObject* dsent_computeLinkPower(PyObject*, PyObject*);
|
||||||
|
|
||||||
|
// Create DSENT configuration map. This map is supposed to retain all
|
||||||
|
// the information between calls to initialize() and finalize().
|
||||||
|
map<String, String> params;
|
||||||
|
DSENT::Model *ms_model;
|
||||||
|
|
||||||
|
|
||||||
|
static PyMethodDef DSENTMethods[] = {
|
||||||
|
{"initialize", dsent_initialize, METH_O,
|
||||||
|
"initialize dsent using a config file."},
|
||||||
|
|
||||||
|
{"finalize", dsent_finalize, METH_NOARGS,
|
||||||
|
"finalize dsent by dstroying the config object"},
|
||||||
|
|
||||||
|
{"computeRouterPowerAndArea", dsent_computeRouterPowerAndArea,
|
||||||
|
METH_VARARGS, "compute quantities related power consumption of a router"},
|
||||||
|
|
||||||
|
{"computeLinkPower", dsent_computeLinkPower, METH_O,
|
||||||
|
"compute quantities related power consumption of a link"},
|
||||||
|
|
||||||
|
{NULL, NULL, 0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
PyMODINIT_FUNC
|
||||||
|
initdsent(void)
|
||||||
|
{
|
||||||
|
PyObject *m;
|
||||||
|
|
||||||
|
m = Py_InitModule("dsent", DSENTMethods);
|
||||||
|
if (m == NULL) return;
|
||||||
|
|
||||||
|
DSENTError = PyErr_NewException("dsent.error", NULL, NULL);
|
||||||
|
Py_INCREF(DSENTError);
|
||||||
|
PyModule_AddObject(m, "error", DSENTError);
|
||||||
|
|
||||||
|
ms_model = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
dsent_initialize(PyObject *self, PyObject *arg)
|
||||||
|
{
|
||||||
|
const char *config_file = PyString_AsString(arg);
|
||||||
|
//Read the arguments sent from the python script
|
||||||
|
if (!config_file) {
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize DSENT
|
||||||
|
ms_model = DSENT::initialize(config_file, params);
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
dsent_finalize(PyObject *self, PyObject *args)
|
||||||
|
{
|
||||||
|
// Finalize DSENT
|
||||||
|
DSENT::finalize(params, ms_model);
|
||||||
|
ms_model = nullptr;
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
dsent_computeRouterPowerAndArea(PyObject *self, PyObject *args)
|
||||||
|
{
|
||||||
|
uint64_t frequency;
|
||||||
|
unsigned int num_in_port;
|
||||||
|
unsigned int num_out_port;
|
||||||
|
unsigned int num_vclass;
|
||||||
|
unsigned int num_vchannels;
|
||||||
|
unsigned int num_buffers;
|
||||||
|
|
||||||
|
unsigned int flit_width;
|
||||||
|
const char *input_port_buffer_model;
|
||||||
|
const char *crossbar_model;
|
||||||
|
const char *sa_arbiter_model;
|
||||||
|
const char *clk_tree_model;
|
||||||
|
unsigned int clk_tree_num_levels;
|
||||||
|
const char *clk_tree_wire_layer;
|
||||||
|
double clk_tree_wire_width_mult;
|
||||||
|
|
||||||
|
// Read the arguments sent from the python script
|
||||||
|
if (!PyArg_ParseTuple(args, "KIIIIII", &frequency, &num_in_port,
|
||||||
|
&num_out_port, &num_vclass, &num_vchannels,
|
||||||
|
&num_buffers, &flit_width)) {
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(frequency > 0.0);
|
||||||
|
assert(num_in_port != 0);
|
||||||
|
assert(num_out_port != 0);
|
||||||
|
assert(num_vclass != 0);
|
||||||
|
assert(flit_width != 0);
|
||||||
|
|
||||||
|
vector<unsigned int> num_vchannels_vec(num_vclass, num_vchannels);
|
||||||
|
vector<unsigned int> num_buffers_vec(num_vclass, num_buffers);
|
||||||
|
// DSENT outputs
|
||||||
|
map<string, double> outputs;
|
||||||
|
|
||||||
|
params["Frequency"] = String(frequency);
|
||||||
|
params["NumberInputPorts"] = String(num_in_port);
|
||||||
|
params["NumberOutputPorts"] = String(num_out_port);
|
||||||
|
params["NumberVirtualNetworks"] = String(num_vclass);
|
||||||
|
params["NumberVirtualChannelsPerVirtualNetwork"] =
|
||||||
|
vectorToString<unsigned int>(num_vchannels_vec);
|
||||||
|
params["NumberBuffersPerVirtualChannel"] =
|
||||||
|
vectorToString<unsigned int>(num_buffers_vec);
|
||||||
|
params["NumberBitsPerFlit"] = String(flit_width);
|
||||||
|
|
||||||
|
// Run DSENT
|
||||||
|
DSENT::run(params, ms_model, outputs);
|
||||||
|
|
||||||
|
// Store outputs
|
||||||
|
PyObject *r = PyTuple_New(outputs.size());
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
|
// Prepare the output. The assumption is that all the output
|
||||||
|
for (const auto &it : outputs) {
|
||||||
|
PyObject *s = PyTuple_New(2);
|
||||||
|
PyTuple_SetItem(s, 0, PyString_FromString(it.first.c_str()));
|
||||||
|
PyTuple_SetItem(s, 1, PyFloat_FromDouble(it.second));
|
||||||
|
|
||||||
|
PyTuple_SetItem(r, index, s);
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
dsent_computeLinkPower(PyObject *self, PyObject *arg)
|
||||||
|
{
|
||||||
|
uint64_t frequency = PyLong_AsLongLong(arg);
|
||||||
|
|
||||||
|
// Read the arguments sent from the python script
|
||||||
|
if (frequency == -1) {
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DSENT outputs
|
||||||
|
map<string, double> outputs;
|
||||||
|
params["Frequency"] = String(frequency);
|
||||||
|
|
||||||
|
// Run DSENT
|
||||||
|
DSENT::run(params, ms_model, outputs);
|
||||||
|
|
||||||
|
// Store outputs
|
||||||
|
PyObject *r = PyTuple_New(outputs.size());
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
|
// Prepare the output. The assumption is that all the output
|
||||||
|
for (const auto &it : outputs) {
|
||||||
|
PyObject *s = PyTuple_New(2);
|
||||||
|
PyTuple_SetItem(s, 0, PyString_FromString(it.first.c_str()));
|
||||||
|
PyTuple_SetItem(s, 1, PyFloat_FromDouble(it.second));
|
||||||
|
|
||||||
|
PyTuple_SetItem(r, index, s);
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
dsent_printAvailableModels(PyObject* self, PyObject *args)
|
||||||
|
{
|
||||||
|
}
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __ASSERT_H__
|
#ifndef __ASSERT_H__
|
||||||
#define __ASSERT_H__
|
#define __ASSERT_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "Calculator.h"
|
#include "Calculator.h"
|
||||||
|
|
||||||
#include <cctype>
|
#include <cctype>
|
||||||
|
@ -23,9 +44,13 @@ namespace LibUtil
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Calculator::evaluateString(const String& str_)
|
void Calculator::evaluateString(const String& str_,
|
||||||
|
const map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model,
|
||||||
|
map<string, double> &outputs)
|
||||||
{
|
{
|
||||||
istringstream ist(str_);
|
istringstream ist(str_);
|
||||||
|
|
||||||
while(ist)
|
while(ist)
|
||||||
{
|
{
|
||||||
getToken(ist);
|
getToken(ist);
|
||||||
|
@ -42,26 +67,28 @@ namespace LibUtil
|
||||||
getToken(ist);
|
getToken(ist);
|
||||||
if(m_curr_token_ == SEP)
|
if(m_curr_token_ == SEP)
|
||||||
{
|
{
|
||||||
|
outputs[print_str] = 0;
|
||||||
cout << print_str << endl;
|
cout << print_str << endl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
double v = expr(ist, false);
|
double v = expr(ist, false, config, ms_model);
|
||||||
cout << scientific << print_str << v << endl;
|
outputs[print_str] = v;
|
||||||
|
cout << print_str << v << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
double v = expr(ist, false);
|
double v = expr(ist, false, config, ms_model);
|
||||||
cout << scientific << v << endl;
|
outputs["Missing Expression"] = v;
|
||||||
|
cout << v << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
expr(ist, false);
|
expr(ist, false, config, ms_model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Calculator::Token Calculator::getToken(istringstream& ist_)
|
Calculator::Token Calculator::getToken(istringstream& ist_)
|
||||||
|
@ -146,7 +173,9 @@ namespace LibUtil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double Calculator::prim(istringstream& ist_, bool is_get_)
|
double Calculator::prim(istringstream& ist_, bool is_get_,
|
||||||
|
const map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model)
|
||||||
{
|
{
|
||||||
if(is_get_)
|
if(is_get_)
|
||||||
{
|
{
|
||||||
|
@ -164,7 +193,7 @@ namespace LibUtil
|
||||||
if(getToken(ist_) == ASSIGN)
|
if(getToken(ist_) == ASSIGN)
|
||||||
{
|
{
|
||||||
String var_name = m_value_string_;
|
String var_name = m_value_string_;
|
||||||
v = expr(ist_, true);
|
v = expr(ist_, true, config, ms_model);
|
||||||
m_var_.set(var_name, v);
|
m_var_.set(var_name, v);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -173,13 +202,13 @@ namespace LibUtil
|
||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
case NAME2:
|
case NAME2:
|
||||||
v = getEnvVar(m_value_string_);
|
v = getEnvVar(m_value_string_, config, ms_model);
|
||||||
getToken(ist_);
|
getToken(ist_);
|
||||||
return v;
|
return v;
|
||||||
case MINUS:
|
case MINUS:
|
||||||
return -prim(ist_, true);
|
return -prim(ist_, true, config, ms_model);
|
||||||
case LP:
|
case LP:
|
||||||
v = expr(ist_, true);
|
v = expr(ist_, true, config, ms_model);
|
||||||
ASSERT((m_curr_token_ == RP), "[Error] ')' expected");
|
ASSERT((m_curr_token_ == RP), "[Error] ')' expected");
|
||||||
getToken(ist_);
|
getToken(ist_);
|
||||||
return v;
|
return v;
|
||||||
|
@ -188,9 +217,11 @@ namespace LibUtil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double Calculator::term(istringstream& ist_, bool is_get_)
|
double Calculator::term(istringstream& ist_, bool is_get_,
|
||||||
|
const map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model)
|
||||||
{
|
{
|
||||||
double left = prim(ist_, is_get_);
|
double left = prim(ist_, is_get_, config, ms_model);
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
|
@ -198,10 +229,10 @@ namespace LibUtil
|
||||||
switch(m_curr_token_)
|
switch(m_curr_token_)
|
||||||
{
|
{
|
||||||
case MUL:
|
case MUL:
|
||||||
left *= prim(ist_, true);
|
left *= prim(ist_, true, config, ms_model);
|
||||||
break;
|
break;
|
||||||
case DIV:
|
case DIV:
|
||||||
d = prim(ist_, true);
|
d = prim(ist_, true, config, ms_model);
|
||||||
ASSERT(d, "[Error] divided by 0");
|
ASSERT(d, "[Error] divided by 0");
|
||||||
left /= d;
|
left /= d;
|
||||||
break;
|
break;
|
||||||
|
@ -211,19 +242,21 @@ namespace LibUtil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double Calculator::expr(istringstream& ist_, bool is_get_)
|
double Calculator::expr(istringstream& ist_, bool is_get_,
|
||||||
|
const map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model)
|
||||||
{
|
{
|
||||||
double left = term(ist_, is_get_);
|
double left = term(ist_, is_get_, config, ms_model);
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
switch(m_curr_token_)
|
switch(m_curr_token_)
|
||||||
{
|
{
|
||||||
case PLUS:
|
case PLUS:
|
||||||
left += term(ist_, true);
|
left += term(ist_, true, config, ms_model);
|
||||||
break;
|
break;
|
||||||
case MINUS:
|
case MINUS:
|
||||||
left -= term(ist_, true);
|
left -= term(ist_, true, config, ms_model);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return left;
|
return left;
|
||||||
|
@ -231,9 +264,10 @@ namespace LibUtil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double Calculator::getEnvVar(const String& var_name_) const
|
double Calculator::getEnvVar(const String& var_name_,
|
||||||
|
const map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model) const
|
||||||
{
|
{
|
||||||
return m_var_.get(var_name_);
|
return m_var_.get(var_name_);
|
||||||
}
|
}
|
||||||
} // namespace LibUtil
|
} // namespace LibUtil
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,30 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __LIBUTIL_CALCULATOR_H__
|
#ifndef __LIBUTIL_CALCULATOR_H__
|
||||||
#define __LIBUTIL_CALCULATOR_H__
|
#define __LIBUTIL_CALCULATOR_H__
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
#include "model/Model.h"
|
||||||
#include "String.h"
|
#include "String.h"
|
||||||
#include "Map.h"
|
#include "Map.h"
|
||||||
#include "Assert.h"
|
#include "Assert.h"
|
||||||
|
@ -10,6 +32,7 @@
|
||||||
namespace LibUtil
|
namespace LibUtil
|
||||||
{
|
{
|
||||||
using std::istringstream;
|
using std::istringstream;
|
||||||
|
using std::ostringstream;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* program:
|
* program:
|
||||||
|
@ -63,14 +86,30 @@ namespace LibUtil
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void reset();
|
void reset();
|
||||||
void evaluateString(const String& str_);
|
void evaluateString(const String& str_,
|
||||||
|
const std::map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model,
|
||||||
|
std::map<std::string, double> &outputs);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Token getToken(istringstream& ist_);
|
Token getToken(istringstream& ist_);
|
||||||
double prim(istringstream& ist_, bool is_get_);
|
|
||||||
double term(istringstream& ist_, bool is_get_);
|
double prim(istringstream& ist_, bool is_get_,
|
||||||
double expr(istringstream& ist_, bool is_get_);
|
const std::map<String, String> &config,
|
||||||
virtual double getEnvVar(const String& var_name_) const;
|
DSENT::Model *ms_model);
|
||||||
|
|
||||||
|
double term(istringstream& ist_, bool is_get_,
|
||||||
|
const std::map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model);
|
||||||
|
|
||||||
|
double expr(istringstream& ist_, bool is_get_,
|
||||||
|
const std::map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model);
|
||||||
|
|
||||||
|
virtual double getEnvVar(
|
||||||
|
const String& var_name_,
|
||||||
|
const std::map<String, String> &config,
|
||||||
|
DSENT::Model *ms_model) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
String m_reserved_chars_;
|
String m_reserved_chars_;
|
||||||
|
@ -79,7 +118,7 @@ namespace LibUtil
|
||||||
Token m_curr_token_;
|
Token m_curr_token_;
|
||||||
double m_value_number_;
|
double m_value_number_;
|
||||||
String m_value_string_;
|
String m_value_string_;
|
||||||
}; // class Calculator
|
};
|
||||||
} // namespace LibUtil
|
} // namespace LibUtil
|
||||||
|
|
||||||
#endif // __LIBUTIL_CALCULATOR_H__
|
#endif // __LIBUTIL_CALCULATOR_H__
|
||||||
|
|
|
@ -1,69 +1,44 @@
|
||||||
#include "Config.h"
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "Assert.h"
|
#include "Assert.h"
|
||||||
|
#include "Config.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
namespace LibUtil
|
namespace LibUtil
|
||||||
{
|
{
|
||||||
Config::Config(const String& delimiter_, const String& comment_, const String& sentry_)
|
void readFile(const char *filename_, map<String, String> &config)
|
||||||
: mDelimiter(delimiter_), mComment(comment_), mSentry(sentry_)
|
|
||||||
{}
|
|
||||||
|
|
||||||
Config::Config(const Config& config_)
|
|
||||||
: StringMap(config_)
|
|
||||||
{
|
{
|
||||||
mDelimiter = config_.mDelimiter;
|
std::ifstream ist_(filename_);
|
||||||
mComment = config_.mComment;
|
|
||||||
mSentry = config_.mSentry;
|
|
||||||
}
|
|
||||||
|
|
||||||
Config::~Config()
|
|
||||||
{}
|
|
||||||
|
|
||||||
Config* Config::clone() const
|
|
||||||
{
|
|
||||||
return new Config(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Config::readFile(const String& filename_)
|
|
||||||
{
|
|
||||||
std::ifstream fin(filename_.c_str());
|
|
||||||
|
|
||||||
ASSERT(fin, "File not found: " + filename_);
|
|
||||||
fin >> (*this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Config::readString(const String& str_)
|
|
||||||
{
|
|
||||||
String newString = str_;
|
|
||||||
newString.substitute(";", "\n");
|
|
||||||
std::istringstream iss(newString, std::istringstream::in);
|
|
||||||
|
|
||||||
iss >> (*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream& ost_, const Config& config_)
|
|
||||||
{
|
|
||||||
Config::ConstIterator it;
|
|
||||||
for(it = config_.begin(); it != config_.end(); it++)
|
|
||||||
{
|
|
||||||
ost_ << it->first << " " << config_.mDelimiter << " ";
|
|
||||||
ost_ << it->second << std::endl;
|
|
||||||
}
|
|
||||||
return ost_;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::istream& operator>>(std::istream& ist_, Config& config_)
|
|
||||||
{
|
|
||||||
// Set a Config from ist_
|
// Set a Config from ist_
|
||||||
// Read in keys and values, keeping internal whitespace
|
// Read in keys and values, keeping internal whitespace
|
||||||
typedef String::size_type pos;
|
typedef String::size_type pos;
|
||||||
const String& delim = config_.mDelimiter; // separator
|
const String& delimiter = "=";
|
||||||
const String& comm = config_.mComment; // comment
|
const String& comment = "#";
|
||||||
const String& sentry = config_.mSentry; // end of file sentry
|
const String& sentry = "End";
|
||||||
const pos skip = delim.length(); // length of separator
|
const pos skip = delimiter.length(); // length of separator
|
||||||
|
|
||||||
String nextline = ""; // might need to read ahead to see where value ends
|
String nextline = ""; // might need to read ahead to see where value ends
|
||||||
|
|
||||||
|
@ -83,17 +58,17 @@ namespace LibUtil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore comments and the spaces on both ends
|
// Ignore comments and the spaces on both ends
|
||||||
line = line.substr(0, line.find(comm));
|
line = line.substr(0, line.find(comment));
|
||||||
line.trim();
|
line.trim();
|
||||||
|
|
||||||
// Check for end of file sentry
|
// Check for end of file sentry
|
||||||
if((sentry != "") && (line.find(sentry) != String::npos)) return ist_;
|
if((sentry != "") && (line.find(sentry) != String::npos)) return;
|
||||||
|
|
||||||
if(line.length() == 0)
|
if(line.length() == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Parse the line if it contains a delimiter
|
// Parse the line if it contains a delimiter
|
||||||
pos delimPos = line.find(delim);
|
pos delimPos = line.find(delimiter);
|
||||||
ASSERT((delimPos < String::npos), "Invalid config line: '" + line + "'");
|
ASSERT((delimPos < String::npos), "Invalid config line: '" + line + "'");
|
||||||
|
|
||||||
// Extract the key
|
// Extract the key
|
||||||
|
@ -119,7 +94,7 @@ namespace LibUtil
|
||||||
nlcopy.trim();
|
nlcopy.trim();
|
||||||
if(nlcopy == "") continue;
|
if(nlcopy == "") continue;
|
||||||
|
|
||||||
nextline = nextline.substr(0, nextline.find(comm));
|
nextline = nextline.substr(0, nextline.find(comment));
|
||||||
//if(nextline.find(delim) != String::npos)
|
//if(nextline.find(delim) != String::npos)
|
||||||
// continue;
|
// continue;
|
||||||
if((sentry != "") && (nextline.find(sentry) != String::npos))
|
if((sentry != "") && (nextline.find(sentry) != String::npos))
|
||||||
|
@ -136,9 +111,8 @@ namespace LibUtil
|
||||||
// Store key and value
|
// Store key and value
|
||||||
key.trim();
|
key.trim();
|
||||||
line.trim();
|
line.trim();
|
||||||
config_.set(key, line); // overwrites if key is repeated
|
config[key] = line; // overwrites if key is repeated
|
||||||
}
|
}
|
||||||
return ist_;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,36 +1,36 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __LIBUTIL_CONFIG_H__
|
#ifndef __LIBUTIL_CONFIG_H__
|
||||||
#define __LIBUTIL_CONFIG_H__
|
#define __LIBUTIL_CONFIG_H__
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
#include "Map.h"
|
#include "libutil/String.h"
|
||||||
|
|
||||||
namespace LibUtil
|
namespace LibUtil
|
||||||
{
|
{
|
||||||
class Config : public StringMap
|
// Load the config from file
|
||||||
{
|
void readFile(const char *filename_, std::map<String, String> &config);
|
||||||
public:
|
|
||||||
Config(const String& delimiter_ = "=", const String& comment_ = "#", const String& sentry_ = "End");
|
|
||||||
Config(const Config& config_);
|
|
||||||
virtual ~Config();
|
|
||||||
|
|
||||||
public:
|
|
||||||
// Make a copy of this instance
|
|
||||||
virtual Config* clone() const;
|
|
||||||
// Load the config from file
|
|
||||||
virtual void readFile(const String& filename_);
|
|
||||||
// Parse string and overwrite the Config instance if keys exist
|
|
||||||
virtual void readString(const String& str_);
|
|
||||||
|
|
||||||
// Write or read map using standard IO
|
|
||||||
friend std::ostream& operator<<(std::ostream& ost_, const Config& config_);
|
|
||||||
friend std::istream& operator>>(std::istream& ist_, Config& config_);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
String mDelimiter;
|
|
||||||
String mComment;
|
|
||||||
String mSentry;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // __LIBUTIL_CONFIG_H__
|
#endif // __LIBUTIL_CONFIG_H__
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
|
|
||||||
namespace LibUtil
|
namespace LibUtil
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __EXCEPTION_H__
|
#ifndef __EXCEPTION_H__
|
||||||
#define __EXCEPTION_H__
|
#define __EXCEPTION_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __LIBUTIL_H__
|
#ifndef __LIBUTIL_H__
|
||||||
#define __LIBUTIL_H__
|
#define __LIBUTIL_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
|
|
||||||
#include "Assert.h"
|
#include "Assert.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __LOG_H__
|
#ifndef __LOG_H__
|
||||||
#define __LOG_H__
|
#define __LOG_H__
|
||||||
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
|
|
||||||
# Define the directories that will be compiled
|
|
||||||
DIRS_TO_COMPILE := . \
|
|
||||||
|
|
||||||
DIRS = $(patsubst %,$(CURDIR)/%,$(DIRS_TO_COMPILE))
|
|
||||||
|
|
||||||
SRCS = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cc))
|
|
||||||
|
|
||||||
OBJS = $(SRCS:%.cc=%.o)
|
|
||||||
|
|
||||||
DEF_FLAGS =
|
|
||||||
|
|
||||||
ifdef LIBUTIL_IS_LOG
|
|
||||||
LIBUTIL_IS_LOG = true
|
|
||||||
else
|
|
||||||
LIBUTIL_IS_LOG = false
|
|
||||||
endif
|
|
||||||
DEF_FLAGS += -DLIBUTIL_IS_LOG=$(LIBUTIL_IS_LOG)
|
|
||||||
|
|
||||||
INCLUDE_FLAGS = $(foreach dir, $(DIRS), -I$(dir))
|
|
||||||
OPT_FLAGS = -O2 -g
|
|
||||||
WARN_FLAGS = -pedantic -Wall -W -Wextra -Werror
|
|
||||||
CXXFLAGS = $(OPT_FLAGS) $(WARN_FLAGS) $(INCLUDE_FLAGS) $(DEF_FLAGS)
|
|
||||||
|
|
||||||
TARGET = $(CURDIR)/libutil.a
|
|
||||||
|
|
||||||
all: $(TARGET)
|
|
||||||
|
|
||||||
$(TARGET): $(OBJS)
|
|
||||||
ar rcs $@ $^
|
|
||||||
#$(TARGET): $(OBJS)
|
|
||||||
# $(CXX) $(CXXFLAGS) $^ -o $(TARGET)
|
|
||||||
|
|
||||||
%.o: %.cc
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
%/created:
|
|
||||||
mkdir -p $(dir $@)
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(RM) -rf $(OBJS) $(TARGET)
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __MAP_H__
|
#ifndef __MAP_H__
|
||||||
#define __MAP_H__
|
#define __MAP_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "MathUtil.h"
|
#include "MathUtil.h"
|
||||||
|
|
||||||
namespace LibUtil
|
namespace LibUtil
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __MATH_H__
|
#ifndef __MATH_H__
|
||||||
#define __MATH_H__
|
#define __MATH_H__
|
||||||
|
|
||||||
|
|
|
@ -1,177 +0,0 @@
|
||||||
#include "OptionParser.h"
|
|
||||||
|
|
||||||
#include <cstdlib>
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
namespace LibUtil
|
|
||||||
{
|
|
||||||
using std::cout;
|
|
||||||
using std::cerr;
|
|
||||||
using std::endl;
|
|
||||||
|
|
||||||
OptionParser::OptionInfo::OptionInfo(
|
|
||||||
const String& var_name_,
|
|
||||||
bool has_arg_,
|
|
||||||
const String& arg_name_,
|
|
||||||
bool has_default_arg_value_,
|
|
||||||
const String& default_arg_value_,
|
|
||||||
const String& description_
|
|
||||||
)
|
|
||||||
: m_var_name_(var_name_),
|
|
||||||
m_has_arg_(has_arg_),
|
|
||||||
m_arg_name_(arg_name_),
|
|
||||||
m_has_default_arg_value_(has_default_arg_value_),
|
|
||||||
m_default_arg_value_(default_arg_value_),
|
|
||||||
m_description_(description_)
|
|
||||||
{}
|
|
||||||
|
|
||||||
OptionParser::OptionInfo::~OptionInfo()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
OptionParser::OptionParser()
|
|
||||||
{}
|
|
||||||
|
|
||||||
OptionParser::~OptionParser()
|
|
||||||
{
|
|
||||||
clearPtrMap(&m_option_infos_);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OptionParser::addOption(
|
|
||||||
const String& option_name_,
|
|
||||||
const String& var_name_,
|
|
||||||
bool has_arg_,
|
|
||||||
const String& arg_name_,
|
|
||||||
bool has_default_arg_value_,
|
|
||||||
const String& default_arg_value_,
|
|
||||||
const String& description_)
|
|
||||||
{
|
|
||||||
OptionInfo* option_info = new OptionInfo(var_name_, has_arg_, arg_name_,
|
|
||||||
has_default_arg_value_, default_arg_value_, description_);
|
|
||||||
|
|
||||||
ASSERT(!m_option_infos_.keyExist(option_name_), "Option exists: " + option_name_);
|
|
||||||
|
|
||||||
// Add the option name to an array for sorting
|
|
||||||
m_option_names_.push_back(option_name_);
|
|
||||||
|
|
||||||
// Add option info
|
|
||||||
m_option_infos_.set(option_name_, option_info);
|
|
||||||
|
|
||||||
// Set the default argument value
|
|
||||||
if(has_default_arg_value_)
|
|
||||||
{
|
|
||||||
set(var_name_, default_arg_value_);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OptionParser::parseArguments(int argc_, char** argv_)
|
|
||||||
{
|
|
||||||
bool is_print_options = false;
|
|
||||||
int arg_idx = 0;
|
|
||||||
|
|
||||||
while(arg_idx < argc_)
|
|
||||||
{
|
|
||||||
String option_name = String(argv_[arg_idx]);
|
|
||||||
|
|
||||||
// Print the options page if -help is specified
|
|
||||||
if(option_name == "-help")
|
|
||||||
{
|
|
||||||
is_print_options = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if(m_option_infos_.keyExist(option_name))
|
|
||||||
{
|
|
||||||
const OptionInfo* option_info = m_option_infos_.get(option_name);
|
|
||||||
const String& var_name = option_info->getVarName();
|
|
||||||
if(option_info->hasArg())
|
|
||||||
{
|
|
||||||
if((arg_idx + 1) >= argc_)
|
|
||||||
{
|
|
||||||
cerr << "[Error] Missing argument for option: '" << option_name << "'" << endl;
|
|
||||||
is_print_options = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
String option_arg = String(argv_[arg_idx + 1]);
|
|
||||||
set(var_name, option_arg);
|
|
||||||
|
|
||||||
arg_idx += 2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// If the option does not require an argument
|
|
||||||
// then set it to true
|
|
||||||
set(var_name, "true");
|
|
||||||
|
|
||||||
arg_idx += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cerr << "[Error] Unknown option: '" << option_name << "'" << endl;
|
|
||||||
is_print_options = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if all required options are set (the ones without default values)
|
|
||||||
vector<String>::const_iterator it;
|
|
||||||
for(it = m_option_names_.begin(); it != m_option_names_.end(); ++it)
|
|
||||||
{
|
|
||||||
const String& option_name = *it;
|
|
||||||
const OptionInfo* option_info = m_option_infos_.get(option_name);
|
|
||||||
|
|
||||||
if(!option_info->hasDefaultArgValue())
|
|
||||||
{
|
|
||||||
const String& var_name = option_info->getVarName();
|
|
||||||
if(!keyExist(var_name))
|
|
||||||
{
|
|
||||||
cerr << "[Error] Missing required option: '" << option_name << "'" << endl;
|
|
||||||
is_print_options = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(is_print_options)
|
|
||||||
{
|
|
||||||
printOptions();
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void OptionParser::printOptions() const
|
|
||||||
{
|
|
||||||
cout << endl;
|
|
||||||
cout << "Available options:" << endl;
|
|
||||||
cout << "==================" << endl << endl;
|
|
||||||
|
|
||||||
vector<String>::const_iterator it;
|
|
||||||
for(it = m_option_names_.begin(); it != m_option_names_.end(); ++it)
|
|
||||||
{
|
|
||||||
const String& option_name = *it;
|
|
||||||
const OptionInfo* option_info = m_option_infos_.get(option_name);
|
|
||||||
|
|
||||||
cout << option_name;
|
|
||||||
if(option_info->hasArg())
|
|
||||||
{
|
|
||||||
cout << " <" << option_info->getArgName() << ">";
|
|
||||||
}
|
|
||||||
cout << endl;
|
|
||||||
|
|
||||||
cout << " " << option_info->getDescription() << endl;
|
|
||||||
if(option_info->hasArg() && option_info->hasDefaultArgValue())
|
|
||||||
{
|
|
||||||
cout << " " << "Default: " << option_info->getDefaultArgValue() << endl;
|
|
||||||
}
|
|
||||||
cout << endl;
|
|
||||||
}
|
|
||||||
cout << "-help" << endl;
|
|
||||||
cout << " " << "Print this page" << endl;
|
|
||||||
cout << endl;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace LibUtil
|
|
|
@ -1,57 +0,0 @@
|
||||||
#ifndef __LIBUTIL_OPTION_PARSER_H__
|
|
||||||
#define __LIBUTIL_OPTION_PARSER_H__
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "Map.h"
|
|
||||||
|
|
||||||
namespace LibUtil
|
|
||||||
{
|
|
||||||
using std::vector;
|
|
||||||
|
|
||||||
// Simple option parser
|
|
||||||
class OptionParser : public StringMap
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
class OptionInfo
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
OptionInfo(const String& var_name_, bool has_arg_, const String& arg_name_, bool has_default_arg_value_, const String& default_arg_value_, const String& description_);
|
|
||||||
~OptionInfo();
|
|
||||||
|
|
||||||
public:
|
|
||||||
inline const String& getVarName() const { return m_var_name_; }
|
|
||||||
inline bool hasArg() const { return m_has_arg_; }
|
|
||||||
inline const String& getArgName() const { return m_arg_name_; }
|
|
||||||
inline bool hasDefaultArgValue() const { return m_has_default_arg_value_; }
|
|
||||||
inline const String& getDefaultArgValue() const { return m_default_arg_value_; }
|
|
||||||
inline const String& getDescription() const { return m_description_; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
String m_var_name_;
|
|
||||||
bool m_has_arg_;
|
|
||||||
String m_arg_name_;
|
|
||||||
bool m_has_default_arg_value_;
|
|
||||||
String m_default_arg_value_;
|
|
||||||
String m_description_;
|
|
||||||
}; // class Option
|
|
||||||
|
|
||||||
public:
|
|
||||||
OptionParser();
|
|
||||||
virtual ~OptionParser();
|
|
||||||
|
|
||||||
public:
|
|
||||||
void addOption(const String& option_name_, const String& var_name_, bool has_arg_, const String& arg_name_, bool has_default_arg_value_, const String& default_arg_value_, const String& description_);
|
|
||||||
|
|
||||||
void parseArguments(int argc_, char** argv_);
|
|
||||||
|
|
||||||
void printOptions() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
vector<String> m_option_names_;
|
|
||||||
Map<OptionInfo*> m_option_infos_;
|
|
||||||
}; // class OptionParser
|
|
||||||
} // LibUtil
|
|
||||||
|
|
||||||
#endif // __LIBUTIL_OPTION_PARSER_H__
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "String.h"
|
#include "String.h"
|
||||||
|
|
||||||
#include <cstdarg>
|
#include <cstdarg>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __STRING_H__
|
#ifndef __STRING_H__
|
||||||
#define __STRING_H__
|
#define __STRING_H__
|
||||||
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
|
|
||||||
#include "DSENT.h"
|
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
DSENT::DSENT::run(argc-1, argv+1);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/ElectricalModel.h"
|
#include "model/ElectricalModel.h"
|
||||||
|
|
||||||
#include "model/PortInfo.h"
|
#include "model/PortInfo.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICALMODEL_H__
|
#ifndef __DSENT_MODEL_ELECTRICALMODEL_H__
|
||||||
#define __DSENT_MODEL_ELECTRICALMODEL_H__
|
#define __DSENT_MODEL_ELECTRICALMODEL_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/EventInfo.h"
|
#include "model/EventInfo.h"
|
||||||
|
|
||||||
#include "model/PortInfo.h"
|
#include "model/PortInfo.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_EVENT_INFO_H__
|
#ifndef __DSENT_MODEL_EVENT_INFO_H__
|
||||||
#define __DSENT_MODEL_EVENT_INFO_H__
|
#define __DSENT_MODEL_EVENT_INFO_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/Model.h"
|
#include "model/Model.h"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_MODEL_H__
|
#ifndef __DSENT_MODEL_MODEL_H__
|
||||||
#define __DSENT_MODEL_MODEL_H__
|
#define __DSENT_MODEL_MODEL_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/ModelGen.h"
|
#include "model/ModelGen.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_MODELGEN_H__
|
#ifndef __DSENT_MODEL_MODELGEN_H__
|
||||||
#define __DSENT_MODEL_MODELGEN_H__
|
#define __DSENT_MODEL_MODELGEN_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/OpticalModel.h"
|
#include "model/OpticalModel.h"
|
||||||
|
|
||||||
#include "model/PortInfo.h"
|
#include "model/PortInfo.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICALMODEL_H__
|
#ifndef __DSENT_MODEL_OPTICALMODEL_H__
|
||||||
#define __DSENT_MODEL_OPTICALMODEL_H__
|
#define __DSENT_MODEL_OPTICALMODEL_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/PortInfo.h"
|
#include "model/PortInfo.h"
|
||||||
|
|
||||||
namespace DSENT
|
namespace DSENT
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_PORT_INFO_H__
|
#ifndef __DSENT_MODEL_PORT_INFO_H__
|
||||||
#define __DSENT_MODEL_PORT_INFO_H__
|
#define __DSENT_MODEL_PORT_INFO_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/TransitionInfo.h"
|
#include "model/TransitionInfo.h"
|
||||||
|
|
||||||
namespace DSENT
|
namespace DSENT
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_TRANSITION_INFO_H__
|
#ifndef __DSENT_MODEL_TRANSITION_INFO_H__
|
||||||
#define __DSENT_MODEL_TRANSITION_INFO_H__
|
#define __DSENT_MODEL_TRANSITION_INFO_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/BarrelShifter.h"
|
#include "model/electrical/BarrelShifter.h"
|
||||||
#include "model/electrical/Multiplexer.h"
|
#include "model/electrical/Multiplexer.h"
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_BARRELSHIFTER_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_BARRELSHIFTER_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_BARRELSHIFTER_H__
|
#define __DSENT_MODEL_ELECTRICAL_BARRELSHIFTER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/BroadcastHTree.h"
|
#include "model/electrical/BroadcastHTree.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_BROADCAST_HTREE_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_BROADCAST_HTREE_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_BROADCAST_HTREE_H__
|
#define __DSENT_MODEL_ELECTRICAL_BROADCAST_HTREE_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/DFFRAM.h"
|
#include "model/electrical/DFFRAM.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_DFFRAM_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_DFFRAM_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_DFFRAM_H__
|
#define __DSENT_MODEL_ELECTRICAL_DFFRAM_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/Decoder.h"
|
#include "model/electrical/Decoder.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_DECODER_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_DECODER_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_DECODER_H__
|
#define __DSENT_MODEL_ELECTRICAL_DECODER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/DemuxTreeDeserializer.h"
|
#include "model/electrical/DemuxTreeDeserializer.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_MULTIPHASEDESERIALIZER_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_MULTIPHASEDESERIALIZER_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_MULTIPHASEDESERIALIZER_H__
|
#define __DSENT_MODEL_ELECTRICAL_MULTIPHASEDESERIALIZER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/MatrixArbiter.h"
|
#include "model/electrical/MatrixArbiter.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__
|
#define __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/Multiplexer.h"
|
#include "model/electrical/Multiplexer.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_H__
|
#define __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/MultiplexerCrossbar.h"
|
#include "model/electrical/MultiplexerCrossbar.h"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_CROSSBAR_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_CROSSBAR_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_CROSSBAR_H__
|
#define __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_CROSSBAR_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/MuxTreeSerializer.h"
|
#include "model/electrical/MuxTreeSerializer.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_MUXTREESERIALIZER_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_MUXTREESERIALIZER_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_MUXTREESERIALIZER_H__
|
#define __DSENT_MODEL_ELECTRICAL_MUXTREESERIALIZER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/OR.h"
|
#include "model/electrical/OR.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_OR_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_OR_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_OR_H__
|
#define __DSENT_MODEL_ELECTRICAL_OR_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/RepeatedLink.h"
|
#include "model/electrical/RepeatedLink.h"
|
||||||
|
|
||||||
#include "model/PortInfo.h"
|
#include "model/PortInfo.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_REPEATED_LINK_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_REPEATED_LINK_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_REPEATED_LINK_H__
|
#define __DSENT_MODEL_ELECTRICAL_REPEATED_LINK_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/RippleAdder.h"
|
#include "model/electrical/RippleAdder.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_RIPPLE_ADDER_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_RIPPLE_ADDER_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_RIPPLE_ADDER_H__
|
#define __DSENT_MODEL_ELECTRICAL_RIPPLE_ADDER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/SeparableAllocator.h"
|
#include "model/electrical/SeparableAllocator.h"
|
||||||
|
|
||||||
#include "model/ModelGen.h"
|
#include "model/ModelGen.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_SEPARABLE_ALLOCATOR_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_SEPARABLE_ALLOCATOR_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_SEPARABLE_ALLOCATOR_H__
|
#define __DSENT_MODEL_ELECTRICAL_SEPARABLE_ALLOCATOR_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/TestModel.h"
|
#include "model/electrical/TestModel.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_TESTMODEL_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_TESTMODEL_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_TESTMODEL_H__
|
#define __DSENT_MODEL_ELECTRICAL_TESTMODEL_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/router/Router.h"
|
#include "model/electrical/router/Router.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_H__
|
#define __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/router/RouterInputPort.h"
|
#include "model/electrical/router/RouterInputPort.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_INPUT_PORT_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_INPUT_PORT_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_INPUT_PORT_H__
|
#define __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_INPUT_PORT_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/electrical/router/RouterSwitchAllocator.h"
|
#include "model/electrical/router/RouterSwitchAllocator.h"
|
||||||
|
|
||||||
#include "model/PortInfo.h"
|
#include "model/PortInfo.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_SWITCH_ALLOCATOR_H__
|
#ifndef __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_SWITCH_ALLOCATOR_H__
|
||||||
#define __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_SWITCH_ALLOCATOR_H__
|
#define __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_SWITCH_ALLOCATOR_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/network/ElectricalClos.h"
|
#include "model/network/ElectricalClos.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_NETWORK_ELECTRICAL_CLOS_H__
|
#ifndef __DSENT_MODEL_NETWORK_ELECTRICAL_CLOS_H__
|
||||||
#define __DSENT_MODEL_NETWORK_ELECTRICAL_CLOS_H__
|
#define __DSENT_MODEL_NETWORK_ELECTRICAL_CLOS_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/network/ElectricalMesh.h"
|
#include "model/network/ElectricalMesh.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_NETWORK_ELECTRICAL_MESH_H__
|
#ifndef __DSENT_MODEL_NETWORK_ELECTRICAL_MESH_H__
|
||||||
#define __DSENT_MODEL_NETWORK_ELECTRICAL_MESH_H__
|
#define __DSENT_MODEL_NETWORK_ELECTRICAL_MESH_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/network/PhotonicClos.h"
|
#include "model/network/PhotonicClos.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_NETWORK_PHOTONIC_CLOS_H__
|
#ifndef __DSENT_MODEL_NETWORK_PHOTONIC_CLOS_H__
|
||||||
#define __DSENT_MODEL_NETWORK_PHOTONIC_CLOS_H__
|
#define __DSENT_MODEL_NETWORK_PHOTONIC_CLOS_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/GatedLaserSource.h"
|
#include "model/optical/GatedLaserSource.h"
|
||||||
|
|
||||||
#include "model/optical_graph/OpticalWaveguide.h"
|
#include "model/optical_graph/OpticalWaveguide.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_GATEDLASERSOURCE_H__
|
#ifndef __DSENT_MODEL_OPTICAL_GATEDLASERSOURCE_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_GATEDLASERSOURCE_H__
|
#define __DSENT_MODEL_OPTICAL_GATEDLASERSOURCE_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/LaserSource.h"
|
#include "model/optical/LaserSource.h"
|
||||||
|
|
||||||
#include "model/optical_graph/OpticalWaveguide.h"
|
#include "model/optical_graph/OpticalWaveguide.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_LASERSOURCE_H__
|
#ifndef __DSENT_MODEL_OPTICAL_LASERSOURCE_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_LASERSOURCE_H__
|
#define __DSENT_MODEL_OPTICAL_LASERSOURCE_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/OpticalLinkBackendRx.h"
|
#include "model/optical/OpticalLinkBackendRx.h"
|
||||||
|
|
||||||
#include "util/Constants.h"
|
#include "util/Constants.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDRX_H__
|
#ifndef __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDRX_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDRX_H__
|
#define __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDRX_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/OpticalLinkBackendTx.h"
|
#include "model/optical/OpticalLinkBackendTx.h"
|
||||||
|
|
||||||
#include "util/Constants.h"
|
#include "util/Constants.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__
|
#ifndef __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__
|
#define __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/OpticalTestModel.h"
|
#include "model/optical/OpticalTestModel.h"
|
||||||
#include "model/optical_graph/OpticalGraph.h"
|
#include "model/optical_graph/OpticalGraph.h"
|
||||||
#include "model/optical_graph/OpticalWaveguide.h"
|
#include "model/optical_graph/OpticalWaveguide.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_OPTICALTESTMODEL_H__
|
#ifndef __DSENT_MODEL_OPTICAL_OPTICALTESTMODEL_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_OPTICALTESTMODEL_H__
|
#define __DSENT_MODEL_OPTICAL_OPTICALTESTMODEL_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/RingDetector.h"
|
#include "model/optical/RingDetector.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_RINGDETECTOR_H__
|
#ifndef __DSENT_MODEL_OPTICAL_RINGDETECTOR_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_RINGDETECTOR_H__
|
#define __DSENT_MODEL_OPTICAL_RINGDETECTOR_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/RingFilter.h"
|
#include "model/optical/RingFilter.h"
|
||||||
|
|
||||||
#include "model/optical_graph/OpticalWaveguide.h"
|
#include "model/optical_graph/OpticalWaveguide.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_RINGFILTER_H__
|
#ifndef __DSENT_MODEL_OPTICAL_RINGFILTER_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_RINGFILTER_H__
|
#define __DSENT_MODEL_OPTICAL_RINGFILTER_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/RingModulator.h"
|
#include "model/optical/RingModulator.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_RINGMODULATOR_H__
|
#ifndef __DSENT_MODEL_OPTICAL_RINGMODULATOR_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_RINGMODULATOR_H__
|
#define __DSENT_MODEL_OPTICAL_RINGMODULATOR_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/SWMRLink.h"
|
#include "model/optical/SWMRLink.h"
|
||||||
|
|
||||||
#include "model/PortInfo.h"
|
#include "model/PortInfo.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_SWMRLINK_H__
|
#ifndef __DSENT_MODEL_OPTICAL_SWMRLINK_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_SWMRLINK_H__
|
#define __DSENT_MODEL_OPTICAL_SWMRLINK_H__
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "model/optical/SWSRLink.h"
|
#include "model/optical/SWSRLink.h"
|
||||||
|
|
||||||
#include "model/ModelGen.h"
|
#include "model/ModelGen.h"
|
||||||
|
|
|
@ -1,3 +1,24 @@
|
||||||
|
/* Copyright (c) 2012 Massachusetts Institute of Technology
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __DSENT_MODEL_OPTICAL_SWSRLINK_H__
|
#ifndef __DSENT_MODEL_OPTICAL_SWSRLINK_H__
|
||||||
#define __DSENT_MODEL_OPTICAL_SWSRLINK_H__
|
#define __DSENT_MODEL_OPTICAL_SWSRLINK_H__
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue