LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::io Namespace Reference

Classes

struct  Citation
 One bibliography entry. More...
struct  Distrib
struct  ExactValue
 An exact scalar as it crosses to a host without a rational type: the two decimal integer strings, plus the double a host can use directly. More...
struct  JmtDistView
 The (D0, D1) pair a JMT MAP or phase-type parameter block is built from, plus the moments the analytic families are reconstructed from. More...
struct  JmtSections
 The three JMT section class names of a node: input, server, output. More...
struct  JmtWriteOptions
 The simulation controls the JSIM header carries, MATLAB's JMTIO properties. More...
class  JmtWriter
 The writer itself. More...
struct  Map2RenvInfo
 The INFO output of map2renv: how the stage set was assembled. More...
struct  QnModel

Enumerations

enum class  JmtMetricKind {
  QLen , Util , RespT , Tput ,
  ArvR , Tard , SysTard
}
 The measure kinds saveMetrics requests, in the order it requests them. More...
enum class  ProcessType
 Distribution kinds, with the values of MATLAB ProcessType. More...
enum class  JoinStrategy
 Join rules, with the values of MATLAB JoinStrategy. More...
enum class  NodeType
 Node kinds, with the values of MATLAB NodeType. More...
enum class  PollingType
 Polling service disciplines, with the values of MATLAB PollingType. More...
enum class  RoutingStrategy
 Routing strategies, with the values of MATLAB RoutingStrategy. More...
enum class  SchedStrategy
 Scheduling disciplines, with the values of MATLAB SchedStrategy. More...

Functions

bool docker_daemon_available ()
 True if the Docker daemon is reachable.
bool docker_has_local_image (const std::string &image)
bool docker_pull (const std::string &image)
 Pulls an image, streaming Docker's progress to stdout and stderr.
bool docker_has_storage_for (const std::string &image)
template<class T>
env::Environment< T > build_environment_from_json (const detail::json &root)
 Build an env::Environment<T> from a parsed model.json envelope.
template<class T>
env::Environment< T > read_environment_json (const std::string &path)
 Parse a model.json file into an env::Environment<T>.
std::string jmt_fmt (double x)
 sprintf('%.12f', x), the numeric format of every JMT <value> body.
std::string jmt_int (double x)
 int2str(x): round to nearest, print as a decimal integer.
std::string jmt_num (double x)
 num2str(x): MATLAB's default five-significant-digit form.
std::string jmt_sig2 (double x)
 num2str(x, 2): the two-significant-digit form used for alpha/precision.
xml::Elementjmt_scalar (xml::Element &parent, const char *class_path, const char *name, const std::string &value)
 <subParameter classPath="java.lang.Double" name="NAME"><value>V</value>
xml::Elementjmt_double (xml::Element &parent, const char *name, double v)
 A java.lang.Double scalar subparameter.
template<class T>
JmtDistView< T > jmt_dist_view (const Distrib< T > &d)
 Lower a Distrib to the view above.
bool jmt_is_phase_type (ProcessType t, std::size_t phases)
 True when the reference routes the process through JMT's PhaseTypeDistr rather than through a named analytic law.
xml::Elementjmt_object_array (xml::Element &parent, const char *name)
 <subParameter array="true" classPath="java.lang.Object" name="NAME">
void jmt_append_row (xml::Element &parent, const Matrix< double > &M, std::size_t row, std::size_t n, bool negate_diagonal)
 One vector of entry doubles, the JMT encoding of a matrix row.
template<class T>
void jmt_append_distribution (xml::Element &wrapper, const JmtDistView< T > &v, const char *who)
 Append the distribution and distrPar pair for one process.
template<class T>
std::vector< std::vector< bool > > jmt_conn_matrix (const qn::NetworkStruct< T > &sn)
 sn.connmatrix: which ordered pairs of nodes the model LINKED.
template<class T>
std::vector< bool > jmt_exportable_classes (const qn::NetworkStruct< T > &sn)
 Port of getExportableClasses.
template<class T>
JmtSections< T > jmt_sections (const qn::NetworkStruct< T > &sn, std::size_t ind)
const char * jmt_metric_text (JmtMetricKind k)
 The JMT type attribute, MATLAB MetricType.toText.
template<class T>
bool jmt_metric_enabled (const qn::NetworkStruct< T > &sn, JmtMetricKind kind, std::size_t ist, std::size_t r, const std::vector< bool > &is_cache_class)
 Port of the disabled rules in getAvgHandles, per (station, class).
template<class T>
std::vector< bool > jmt_cache_classes (const qn::NetworkStruct< T > &sn)
 The classes a Cache switches jobs into; they keep their Tput/ArvR measures.
xml::Elementjmt_param (xml::Element &section, const char *class_path, const char *name, bool array)
 <parameter array="true" classPath="CP" name="NAME">
void jmt_param_value (xml::Element &section, const char *class_path, const char *name, const std::string &value)
 <parameter classPath="CP" name="NAME"><value>V</value></parameter>
void jmt_ref_class (xml::Element &parent, const std::string &class_name)
 <refClass>NAME</refClass>, the per-class marker of an array parameter.
const char * jmt_drop_text (DropStrategy d)
 MATLAB DropStrategy.toText, the strings JMT's dropRule field expects.
bool jmt_reads_drop (DropStrategy d)
 Whether JMT's queue section can read this drop strategy at all.
const char * jmt_hetero_text (lang::HeteroSchedPolicy p)
 MATLAB HeteroSchedPolicy.toJMTText: JMT's long descriptive identifiers.
template<class T>
std::string jmt_write_jsim (const qn::NetworkStruct< T > &sn, const JmtWriteOptions &opt)
 Port of @@JMTIO/writeJSIM.m: serialize sn as a JMT .jsimg document.
template<class T>
std::string jmt_buffer_capacity_refusal (const qn::NetworkStruct< T > &sn, bool jmva_engine)
 JmtWriter::buffer_capacity_refusal without a document: the writer's own binding-buffer verdict, for the gate in jmt::jmt_method_refusal.
template<class T>
std::string write_jmva (const qn::NetworkStruct< T > &L, const std::string &path, const std::string &method, std::size_t samples)
 Port of writeJMVA(sn, outputFileName, options).
template<class T>
qn::Network< T > read_jsim (const std::string &path, const std::string &name=std::string())
 Read a JSIM document into a Network.
std::string jsim_stage_stdin (const std::string &text)
 Write a piped XML model document to a temporary file and return its path.
const std::map< std::string, Citation > & citation_registry ()
 The whole method name -> reference table, built once.
std::vector< Citationline_citations (const std::vector< std::string > &method_names)
 The references for METHOD NAMES, de-duplicated by key, in order of appearance.
std::vector< Citationline_citations_for_method (const std::string &method)
 Convenience for the default/<actual> compound a solver reports.
template<class T>
lqn::LqnStruct< T > build_lqn_from_json (const detail::json &root)
 Build an LqnStruct<T> from a parsed model.json envelope carrying a LayeredNetwork.
bool is_layered_json (const std::string &path)
 True when a file is a LayeredNetwork model.json rather than an .lqnx.
template<class T>
lqn::LqnStruct< T > read_lqn_json (const std::string &path)
 Parse a LayeredNetwork model.json file into an LqnStruct<T>.
template<class T>
lqn::LqnStruct< T > read_layered_model (const std::string &path)
 Read a layered model from either interchange: the LINE model.json or the LQNS .lqnx.
template<class T>
env::Environment< T > map2renv (const qn::NetworkStruct< T > &base, Map2RenvInfo< T > *info=nullptr, std::size_t max_stages=64)
template<class T>
env::Environment< T > mapqn2renv (const qn::NetworkStruct< T > &base, Map2RenvInfo< T > *info=nullptr, std::size_t max_stages=64)
 Retained name for the transformation now implemented by map2renv, which generalizes it from a single MMPP2 service process to any number of MAP, MMPP2 or MMAP processes of arbitrary phase order.
template<class T, class S>
Matrix< T > from_column_major (const S *data, std::size_t rows, std::size_t cols)
 Build a Matrix from a column-major host buffer (MATLAB's mxGetPr layout, numpy's order='F').
template<class T, class S>
Matrix< T > from_row_major (const S *data, std::size_t rows, std::size_t cols)
 Build a Matrix from a row-major host buffer (numpy's default order='C').
template<class T>
void to_column_major (const Matrix< T > &m, double *out)
 Write a Matrix into a column-major host buffer, as doubles.
template<class T>
void to_host (const std::vector< T > &v, double *out)
 Write a vector into a host buffer, as doubles.
template<class T>
std::string exact_numerator (const T &)
 Numerator of an exact value as a decimal string; empty for inexact types.
template<class T>
std::string exact_denominator (const T &)
template<class T>
ExactValue marshal_scalar (const T &v)
 Marshal any T; only the exact instantiation fills numerator/denominator.
template<>
std::string exact_numerator< Rational > (const Rational &v)
template<>
std::string exact_denominator< Rational > (const Rational &v)
const char * error_id (const Error &e)
 Stable identifier for an error, for mexErrMsgIdAndTxt and for mapping to a host exception class.
template<class T>
qn::Network< T > build_network_from_json (const detail::json &root)
 Build a qn::Network<T> from a parsed model.json envelope.
template<class T>
qn::Network< T > read_network_json (const std::string &path)
 Parse a model.json file into a qn::Network<T>.
template<class T>
detail::json network_to_json (const qn::NetworkStruct< T > &sn)
 qn::NetworkStruct -> the model.json model object.
template<class T>
detail::json network_json_envelope (const qn::NetworkStruct< T > &sn)
 The complete model.json envelope: {format, version, model}.
template<class T>
void write_network_json (const qn::NetworkStruct< T > &sn, const std::string &path)
 Write a model.json file, indented as the reference writers indent it.
template<class T>
void pnml_save (const qn::NetworkStruct< T > &sn, const std::string &path)
 Write the Petri net of a refreshed NetworkStruct to a PNML place/transition file.
template<class T>
qn::Network< T > pnml_load (const std::string &path, const std::string &net_id=std::string())
 Read one net of a PNML place/transition document into a Network.
template<class T>
lqn::LqnModel< T > qn2lqn (const qn::NetworkStruct< T > &sn)
 Port of MATLAB QN2LQN(model), over the refreshed C++ NetworkStruct.
template<class T>
lqn::LqnModel< T > qn2lqn (qn::Network< T > &model)
 MATLAB-compatible model-level entry point; refreshes the Network first.
template<class T>
parse_rational_token (const std::string &tok)
 Parse a rational token of the form "3" or "3/10".
template<class T>
QnModel< T > read_qn (const std::string &path)
template<class T>
workflow::Workflow< T > build_workflow_from_json (const detail::json &root)
 Build a workflow::Workflow<T> from a parsed model.json envelope.
template<class T>
workflow::Workflow< T > read_workflow_json (const std::string &path)
 Read a Workflow model.json off disk.

Variables

static const long long DOCKER_DEFAULT_MIN_FREE_BYTES = 2LL * 1024 * 1024 * 1024
 Conservative free-space floor required before a pull (2 GiB).

Enumeration Type Documentation

◆ JmtMetricKind

enum class line::io::JmtMetricKind
strong

The measure kinds saveMetrics requests, in the order it requests them.

Enumerator
QLen 
Util 
RespT 
Tput 
ArvR 
Tard 
SysTard 

Definition at line 282 of file jmt_writer.h.

◆ JoinStrategy

enum class line::lang::JoinStrategy
strong

Join rules, with the values of MATLAB JoinStrategy.

Definition at line 461 of file lang_types.h.

◆ NodeType

enum class line::lang::NodeType
strong

Node kinds, with the values of MATLAB NodeType.

Definition at line 324 of file lang_types.h.

◆ PollingType

enum class line::lang::PollingType
strong

Polling service disciplines, with the values of MATLAB PollingType.

Definition at line 370 of file lang_types.h.

◆ ProcessType

enum class line::lang::ProcessType
strong

Distribution kinds, with the values of MATLAB ProcessType.

Definition at line 483 of file lang_types.h.

◆ RoutingStrategy

enum class line::lang::RoutingStrategy
strong

Routing strategies, with the values of MATLAB RoutingStrategy.

Definition at line 389 of file lang_types.h.

◆ SchedStrategy

enum class line::lang::SchedStrategy
strong

Scheduling disciplines, with the values of MATLAB SchedStrategy.

Definition at line 181 of file lang_types.h.

Function Documentation

◆ build_environment_from_json()

template<class T>
env::Environment< T > line::io::build_environment_from_json ( const detail::json & root)

Build an env::Environment<T> from a parsed model.json envelope.

init() is NOT called here. It superposes the arcs into the marked processes the analyzer integrates against, and it throws when a stage has no finite holding time; that diagnostic belongs to the solve, next to the options that chose it, and not to the parse. Every caller in this port calls init() itself, exactly as the reference's env.init() is a separate step from building the object.

Definition at line 216 of file environment_reader.h.

References line::env::Environment< T >::add_transition(), build_environment_from_json(), build_network_from_json(), line::env::Environment< T >::down_stage_name(), line::qn::Network< T >::get_struct(), line::InputError::InputError(), line::env::Environment< T >::register_node_failure(), line::env::Environment< T >::set_stage(), and line::UnsupportedError::UnsupportedError().

Referenced by build_environment_from_json(), and read_environment_json().

◆ build_lqn_from_json()

◆ build_network_from_json()

template<class T>
qn::Network< T > line::io::build_network_from_json ( const detail::json & root)

Build a qn::Network<T> from a parsed model.json envelope.

Two passes: classes and nodes are declared first (a class references its reference node by name, a Join references its Fork by name, so every node index must exist before the cross-references are wired), then service, arrival and routing are applied.

Definition at line 1106 of file network_reader.h.

References line::qn::CacheParam< T >::accost, line::qn::Network< T >::add_cache(), line::qn::Network< T >::add_class_switch(), line::qn::Network< T >::add_closed_class(), line::qn::Network< T >::add_delay(), line::qn::Network< T >::add_fork(), line::qn::Network< T >::add_join_unbound(), line::qn::Network< T >::add_logger(), line::qn::Network< T >::add_open_class(), line::qn::Network< T >::add_place(), line::qn::Network< T >::add_queue(), line::qn::Network< T >::add_region(), line::qn::Network< T >::add_router(), line::qn::Network< T >::add_self_looping_class(), line::qn::Network< T >::add_server_type(), line::qn::Network< T >::add_sink(), line::qn::Network< T >::add_source(), line::qn::Network< T >::add_transition(), line::qn::Network< T >::bind_join(), build_network_from_json(), line::lang::CATASTROPHE, line::qn::CacheParam< T >::classitem, line::Matrix< T >::cols(), line::qn::Station< T >::ServerType::compatible, line::qn::CacheParam< T >::costcap, line::qn::CacheParam< T >::costcapglobal, line::qn::Station< T >::ServerType::count, line::lang::DISABLED, line::lang::Distrib< T >::disabled, line::lang::Distrib< T >::disabled_dist(), line::lang::Distrib< T >::discrete_sampler(), line::lang::dist_to_map(), line::qn::TransitionParam< T >::enabling, line::lang::FCFS, line::qn::NodeDef::LoggerParam::file_path, line::qn::TransitionParam< T >::fireweight, line::qn::TransitionParam< T >::firing, line::qn::TransitionParam< T >::firingdep, line::qn::TransitionParam< T >::firingphases, line::qn::TransitionParam< T >::firingprio, line::qn::TransitionParam< T >::firingproc, line::qn::Network< T >::get_struct(), line::qn::CacheParam< T >::hitclass, line::lang::IMMEDIATE, line::qn::TransitionParam< T >::inhibiting, line::qn::CacheParam< T >::initstate, line::InputError::InputError(), line::qn::CacheParam< T >::itemcap, line::qn::CacheParam< T >::itemsize, line::qn::NodeDef::LoggerParam::job_class, line::qn::NodeDef::LoggerParam::job_id, line::lang::LCFS, line::qn::Network< T >::link(), line::qn::NodeDef::LoggerParam::logger_name, line::qn::Station< T >::BalkingThreshold::max_jobs, line::lang::Distrib< T >::mean, line::qn::Station< T >::BalkingThreshold::min_jobs, line::qn::CacheParam< T >::missclass, line::qn::TransitionParam< T >::modenames, line::qn::Station< T >::ServerType::name, line::qn::NetworkStruct< T >::nclasses, line::lang::NEGATIVE, line::qn::CacheParam< T >::nitems, line::qn::TransitionParam< T >::nmodes, line::qn::TransitionParam< T >::nmodeservers, line::qn::NetworkStruct< T >::nodes, line::qn::NetworkStruct< T >::nstations, line::ones(), line::lang::PARTIAL, line::qn::CacheParam< T >::pread, line::qn::CacheParam< T >::preadkind, line::qn::Station< T >::BalkingThreshold::probability, line::qn::CacheParam< T >::qlru, line::lang::RANDOM, line::qn::Network< T >::raw_struct(), line::lang::RENEGING, line::qn::CacheParam< T >::replacestrat, line::lang::REPLY, line::qn::CacheParam< T >::retrieval_capacity, line::qn::CacheParam< T >::retrieval_classes, line::qn::CacheParam< T >::retrieval_queues, line::Matrix< T >::rows(), line::qn::Station< T >::ServerType::service, line::qn::RoutingMatrix< T >::set(), line::qn::Network< T >::set_arrival(), line::qn::Network< T >::set_arrival_batch(), line::qn::Network< T >::set_balking(), line::qn::Network< T >::set_batch_reject(), line::qn::Network< T >::set_breakdown(), line::qn::Network< T >::set_capacity(), line::qn::Network< T >::set_class_capacity(), line::qn::Network< T >::set_class_deadline(), line::qn::Network< T >::set_class_dependence(), line::qn::Network< T >::set_class_immediate_feedback(), line::qn::Network< T >::set_class_patience(), line::qn::Network< T >::set_class_spawn(), line::qn::Network< T >::set_departure_discipline(), line::qn::Network< T >::set_drop_rule(), line::qn::Network< T >::set_fork_branch_probability(), line::qn::Network< T >::set_fork_tasks_per_link(), line::qn::Network< T >::set_fork_tasks_per_link_dist(), line::qn::Network< T >::set_global_dependence(), line::qn::Network< T >::set_hetero_sched_policy(), line::qn::Network< T >::set_immediate_feedback(), line::qn::Network< T >::set_initial_marking(), line::qn::Network< T >::set_join_strategy(), line::qn::Network< T >::set_joint_dependence(), line::qn::Network< T >::set_load_dependence(), line::qn::Network< T >::set_log_path(), line::qn::Network< T >::set_marked_classes(), line::qn::Network< T >::set_number_of_servers(), line::qn::Network< T >::set_orbit_impatience(), line::qn::Network< T >::set_pas(), line::qn::Network< T >::set_patience(), line::qn::Network< T >::set_polling_type(), line::qn::Network< T >::set_reference_class(), line::qn::Network< T >::set_region_constraint(), line::qn::Network< T >::set_region_weights(), line::qn::Network< T >::set_reply_signal_class(), line::qn::Network< T >::set_retrial(), line::qn::Network< T >::set_reward(), line::qn::Network< T >::set_routing(), line::qn::Network< T >::set_routing_param(), line::qn::Network< T >::set_routing_weights(), line::qn::Network< T >::set_sched_param(), line::qn::Network< T >::set_server_parallelism(), line::qn::Network< T >::set_service(), line::qn::Network< T >::set_setup_delayoff(), line::qn::Network< T >::set_signal(), line::qn::Network< T >::set_state_dep_routing(), line::qn::Network< T >::set_state_prior(), line::qn::Network< T >::set_switchover(), line::qn::NodeDef::LoggerParam::start_time, line::lang::STD, line::qn::NodeDef::LoggerParam::time_any_class, line::qn::NodeDef::LoggerParam::time_same_class, line::lang::TIMED, line::qn::NodeDef::LoggerParam::timestamp, line::qn::TransitionParam< T >::timing, line::UnsupportedError::UnsupportedError(), and line::lang::WAITQ.

Referenced by build_environment_from_json(), build_network_from_json(), and read_network_json().

◆ build_workflow_from_json()

template<class T>
workflow::Workflow< T > line::io::build_workflow_from_json ( const detail::json & root)

Build a workflow::Workflow<T> from a parsed model.json envelope.

One pass: an activity is declared before any precedence may reference it, which the wire guarantees by carrying activities as its own block. The result is NOT validated here – validate() and to_ph() do that on the composed model, where the series-parallel and quorum rules actually apply.

Definition at line 165 of file workflow_reader.h.

References build_workflow_from_json(), line::lang::Distrib< T >::exp_mean(), line::InputError::InputError(), line::workflow::Precedence< T >::post_acts, line::workflow::Precedence< T >::post_params, line::workflow::Precedence< T >::post_type, line::workflow::Precedence< T >::pre_acts, line::workflow::Precedence< T >::pre_params, line::workflow::Precedence< T >::pre_type, and line::UnsupportedError::UnsupportedError().

Referenced by build_workflow_from_json(), and read_workflow_json().

◆ citation_registry()

const std::map< std::string, Citation > & line::io::citation_registry ( )

The whole method name -> reference table, built once.

Definition at line 43 of file line_citations.cpp.

References citation_registry().

Referenced by citation_registry(), and line_citations().

◆ docker_daemon_available()

bool line::io::docker_daemon_available ( )
inline

True if the Docker daemon is reachable.

Definition at line 49 of file docker_image.h.

References line::util::capture(), docker_daemon_available(), and line::util::ProcResult::exitCode.

Referenced by docker_daemon_available(), and line::jmt::jmt_run().

◆ docker_has_local_image()

bool line::io::docker_has_local_image ( const std::string & image)
inline
Parameters
imagethe image tag
Returns
true if it is already present in the local Docker store

Definition at line 58 of file docker_image.h.

References line::util::capture(), docker_has_local_image(), line::util::ProcResult::exitCode, line::util::ProcResult::out, and line::util::trim().

Referenced by docker_has_local_image(), line::jmt::jmt_run(), line::sym::sym_find_image(), and line::sym::sym_resolve().

◆ docker_has_storage_for()

bool line::io::docker_has_storage_for ( const std::string & image)
inline
Parameters
imagethe image tag
Returns
true if the Docker storage location has room for it

Definition at line 134 of file docker_image.h.

References DOCKER_DEFAULT_MIN_FREE_BYTES, and docker_has_storage_for().

Referenced by docker_has_storage_for(), and line::jmt::jmt_run().

◆ docker_pull()

bool line::io::docker_pull ( const std::string & image)
inline

Pulls an image, streaming Docker's progress to stdout and stderr.

No timeout.

Parameters
imagethe image tag
Returns
true on success

Definition at line 70 of file docker_image.h.

References docker_pull(), and line::util::run_inherit().

Referenced by docker_pull(), and line::jmt::jmt_run().

◆ error_id()

const char * line::io::error_id ( const Error & e)
inline

Stable identifier for an error, for mexErrMsgIdAndTxt and for mapping to a host exception class.

The prose message stays in what(); hosts must key on the identifier, which will not change with wording.

Definition at line 146 of file marshal.h.

References error_id().

Referenced by error_id().

◆ exact_denominator()

template<class T>
std::string line::io::exact_denominator ( const T & )

Definition at line 132 of file marshal.h.

References exact_denominator().

Referenced by exact_denominator(), exact_denominator< Rational >(), and marshal_scalar().

◆ exact_denominator< Rational >()

template<>
std::string line::io::exact_denominator< Rational > ( const Rational & v)
inline

Definition at line 137 of file marshal.h.

References exact_denominator().

◆ exact_numerator()

template<class T>
std::string line::io::exact_numerator ( const T & )

Numerator of an exact value as a decimal string; empty for inexact types.

Definition at line 122 of file marshal.h.

References exact_numerator().

Referenced by exact_numerator(), exact_numerator< Rational >(), and marshal_scalar().

◆ exact_numerator< Rational >()

template<>
std::string line::io::exact_numerator< Rational > ( const Rational & v)
inline

Definition at line 127 of file marshal.h.

References exact_numerator().

◆ from_column_major()

template<class T, class S>
Matrix< T > line::io::from_column_major ( const S * data,
std::size_t rows,
std::size_t cols )

Build a Matrix from a column-major host buffer (MATLAB's mxGetPr layout, numpy's order='F').

Converts the element type through num_traits, so a double buffer can feed an exact or high-precision instantiation.

Definition at line 53 of file marshal.h.

References from_column_major(), and line::InputError::InputError().

Referenced by from_column_major().

◆ from_row_major()

template<class T, class S>
Matrix< T > line::io::from_row_major ( const S * data,
std::size_t rows,
std::size_t cols )

Build a Matrix from a row-major host buffer (numpy's default order='C').

Definition at line 65 of file marshal.h.

References from_row_major(), and line::InputError::InputError().

Referenced by from_row_major().

◆ is_layered_json()

bool line::io::is_layered_json ( const std::string & path)
inline

True when a file is a LayeredNetwork model.json rather than an .lqnx.

Decided on the CONTENT, not the extension: linemodel_save writes .json for both model kinds and the two readers cannot be told apart by name. The first non-space character settles it – { is JSON, < is XML – and the type field settles which JSON.

Definition at line 359 of file lqn_json_reader.h.

References is_layered_json().

Referenced by find_solver_report(), is_layered_json(), read_layered_model(), and run_invocation().

◆ jmt_append_distribution()

template<class T>
void line::io::jmt_append_distribution ( xml::Element & wrapper,
const JmtDistView< T > & v,
const char * who )

Append the distribution and distrPar pair for one process.

Parameters
wrapperthe element the pair is appended to – the caller's ServiceTimeStrategy, or a Timing / Impatience wrapper
vthe lowered process
whothe caller, for the refusal message of an unexportable family

A family JMT has no law for is REFUSED BY NAME. Falling through to the nearest available law would export a model that simulates cleanly and answers a different question, and the featset gate is what is supposed to catch this: a refusal here means the featset and this emitter have drifted apart.

Definition at line 226 of file jmt_dist.h.

References line::xml::Element::add_child(), line::io::JmtDistView< T >::D0, line::io::JmtDistView< T >::D1, jmt_append_distribution(), jmt_append_row(), jmt_double(), jmt_fmt(), jmt_int(), jmt_is_phase_type(), jmt_object_array(), jmt_scalar(), line::io::JmtDistView< T >::phases, line::io::JmtDistView< T >::pie, line::io::JmtDistView< T >::rate, line::Matrix< T >::rows(), line::io::JmtDistView< T >::scv, line::xml::Element::set_attr(), line::io::JmtDistView< T >::trace_file, line::io::JmtDistView< T >::type, and line::UnsupportedError::UnsupportedError().

Referenced by jmt_append_distribution().

◆ jmt_append_row()

void line::io::jmt_append_row ( xml::Element & parent,
const Matrix< double > & M,
std::size_t row,
std::size_t n,
bool negate_diagonal )
inline

One vector of entry doubles, the JMT encoding of a matrix row.

Definition at line 202 of file jmt_dist.h.

References jmt_append_row(), jmt_fmt(), jmt_object_array(), and jmt_scalar().

Referenced by jmt_append_distribution(), and jmt_append_row().

◆ jmt_buffer_capacity_refusal()

template<class T>
std::string line::io::jmt_buffer_capacity_refusal ( const qn::NetworkStruct< T > & sn,
bool jmva_engine )

JmtWriter::buffer_capacity_refusal without a document: the writer's own binding-buffer verdict, for the gate in jmt::jmt_method_refusal.

Definition at line 2858 of file jmt_writer.h.

References line::io::JmtWriter< T >::buffer_capacity_refusal(), and jmt_buffer_capacity_refusal().

Referenced by jmt_buffer_capacity_refusal(), and line::jmt::jmt_method_refusal().

◆ jmt_cache_classes()

template<class T>
std::vector< bool > line::io::jmt_cache_classes ( const qn::NetworkStruct< T > & sn)

The classes a Cache switches jobs into; they keep their Tput/ArvR measures.

Definition at line 346 of file jmt_writer.h.

References line::qn::CacheParam< T >::hitclass, jmt_cache_classes(), and line::qn::CacheParam< T >::missclass.

Referenced by jmt_cache_classes(), line::jmt::jmt_get_cdf_resp_t(), and line::io::JmtWriter< T >::JmtWriter().

◆ jmt_conn_matrix()

template<class T>
std::vector< std::vector< bool > > line::io::jmt_conn_matrix ( const qn::NetworkStruct< T > & sn)

sn.connmatrix: which ordered pairs of nodes the model LINKED.

The reference carries the matrix on the struct, recorded by Network.addLink. This port records the links only through the routing blocks P, so the connection set is their union support. That is the same set for every model built the way link(P) builds one – addLink is called from link for each nonzero entry – and it is what the JSIM <connection> list, the ClassSwitch row sum, the WRROBIN and PROB destination lists and the SPN input/output vectors all read.

Peff IS NOT USED HERE, deliberately: it has the RAND/RROBIN expansion and the class-switch folding applied, so a Router's declared links would come back as the links of the stations it routes to, and the exported topology would not be the user's.

Definition at line 96 of file jmt_writer.h.

References line::Matrix< T >::cols(), jmt_conn_matrix(), and line::Matrix< T >::rows().

Referenced by jmt_conn_matrix(), and line::io::JmtWriter< T >::JmtWriter().

◆ jmt_dist_view()

template<class T>
JmtDistView< T > line::io::jmt_dist_view ( const Distrib< T > & d)

◆ jmt_double()

xml::Element & line::io::jmt_double ( xml::Element & parent,
const char * name,
double v )
inline

A java.lang.Double scalar subparameter.

Definition at line 91 of file jmt_dist.h.

References jmt_double(), jmt_fmt(), and jmt_scalar().

Referenced by jmt_append_distribution(), and jmt_double().

◆ jmt_drop_text()

const char * line::io::jmt_drop_text ( DropStrategy d)
inline

MATLAB DropStrategy.toText, the strings JMT's dropRule field expects.

Definition at line 385 of file jmt_writer.h.

References line::InputError::InputError(), and jmt_drop_text().

Referenced by jmt_drop_text().

◆ jmt_exportable_classes()

template<class T>
std::vector< bool > line::io::jmt_exportable_classes ( const qn::NetworkStruct< T > & sn)

Port of getExportableClasses.

A closed class with no customers is dropped from the exported model UNLESS jobs can still reach it: as a cache hit/miss class, or through a class switch from a populated class of the same chain. Exporting it anyway would give JMT a class it can never see and, for a closed class, a reference station with zero population – which JMT reports as an unreachable measure rather than as an empty one.

Definition at line 120 of file jmt_writer.h.

References line::qn::CacheParam< T >::hitclass, jmt_exportable_classes(), and line::qn::CacheParam< T >::missclass.

Referenced by jmt_exportable_classes(), and line::io::JmtWriter< T >::JmtWriter().

◆ jmt_fmt()

std::string line::io::jmt_fmt ( double x)
inline

sprintf('%.12f', x), the numeric format of every JMT <value> body.

Definition at line 53 of file jmt_dist.h.

References jmt_fmt().

Referenced by jmt_append_distribution(), jmt_append_row(), jmt_double(), and jmt_fmt().

◆ jmt_hetero_text()

const char * line::io::jmt_hetero_text ( lang::HeteroSchedPolicy p)
inline

MATLAB HeteroSchedPolicy.toJMTText: JMT's long descriptive identifiers.

Definition at line 414 of file jmt_writer.h.

References line::lang::ALFS, line::lang::ALIS, line::lang::FAIRNESS, line::lang::FSF, jmt_hetero_text(), line::lang::ORDER, and line::lang::RAIS.

Referenced by jmt_hetero_text().

◆ jmt_int()

std::string line::io::jmt_int ( double x)
inline

int2str(x): round to nearest, print as a decimal integer.

Definition at line 60 of file jmt_dist.h.

References jmt_int().

Referenced by line::io::JmtWriter< T >::buffer_capacity_refusal(), jmt_append_distribution(), and jmt_int().

◆ jmt_is_phase_type()

bool line::io::jmt_is_phase_type ( ProcessType t,
std::size_t phases )
inline

True when the reference routes the process through JMT's PhaseTypeDistr rather than through a named analytic law.

COX2 IS ADDED TO THE REFERENCE'S LIST. saveServiceStrategy sends PH, APH, COXIAN and a HyperExp of more than two phases down this branch, and lets COX2 fall into the analytic switch – which has no COX2 case, so MATLAB errors on an undefined javaClass. A two-phase Coxian has an exact phase-type representation, and this port's ProcessType keeps COX2 distinct from COXIAN, so it is exported through the same exact branch rather than through an error.

Definition at line 187 of file jmt_dist.h.

References jmt_is_phase_type().

Referenced by jmt_append_distribution(), and jmt_is_phase_type().

◆ jmt_metric_enabled()

template<class T>
bool line::io::jmt_metric_enabled ( const qn::NetworkStruct< T > & sn,
JmtMetricKind kind,
std::size_t ist,
std::size_t r,
const std::vector< bool > & is_cache_class )

Port of the disabled rules in getAvgHandles, per (station, class).

The rules are per kind: a Source or a Sink reports no queue length, response time, utilization or tardiness but DOES report throughput and arrival rate; a Fork or a Join reports no utilization; a station whose class has no service process reports nothing, EXCEPT that a cache hit/miss class keeps its throughput and arrival rate – a job only ever passes through such a class, it is never served in it, and disabling the measure would leave the cache's hit rate unobservable.

has_service_tunnel reproduces the reference's test on the SECTION object: a Source, a Join and an ordinary Place have a ServiceTunnel and are therefore exempt from the service-defined test entirely.

Definition at line 314 of file jmt_writer.h.

References ArvR, jmt_metric_enabled(), jmt_sections(), QLen, RespT, line::io::JmtSections< T >::server, SysTard, Tard, Tput, and Util.

Referenced by line::jmt::jmt_get_cdf_resp_t(), and jmt_metric_enabled().

◆ jmt_metric_text()

const char * line::io::jmt_metric_text ( JmtMetricKind k)
inline

The JMT type attribute, MATLAB MetricType.toText.

Definition at line 285 of file jmt_writer.h.

References ArvR, jmt_metric_text(), QLen, RespT, SysTard, Tard, Tput, and Util.

Referenced by jmt_metric_text().

◆ jmt_num()

std::string line::io::jmt_num ( double x)
inline

num2str(x): MATLAB's default five-significant-digit form.

Definition at line 67 of file jmt_dist.h.

References jmt_num().

Referenced by jmt_num().

◆ jmt_object_array()

xml::Element & line::io::jmt_object_array ( xml::Element & parent,
const char * name )
inline

<subParameter array="true" classPath="java.lang.Object" name="NAME">

Definition at line 193 of file jmt_dist.h.

References line::xml::Element::add_child(), jmt_object_array(), and line::xml::Element::set_attr().

Referenced by jmt_append_distribution(), jmt_append_row(), and jmt_object_array().

◆ jmt_param()

xml::Element & line::io::jmt_param ( xml::Element & section,
const char * class_path,
const char * name,
bool array )
inline

<parameter array="true" classPath="CP" name="NAME">

Definition at line 363 of file jmt_writer.h.

References line::xml::Element::add_child(), jmt_param(), and line::xml::Element::set_attr().

Referenced by jmt_param(), and jmt_param_value().

◆ jmt_param_value()

void line::io::jmt_param_value ( xml::Element & section,
const char * class_path,
const char * name,
const std::string & value )
inline

<parameter classPath="CP" name="NAME"><value>V</value></parameter>

Definition at line 373 of file jmt_writer.h.

References line::xml::Element::add_text_child(), jmt_param(), and jmt_param_value().

Referenced by jmt_param_value().

◆ jmt_reads_drop()

bool line::io::jmt_reads_drop ( DropStrategy d)
inline

Whether JMT's queue section can read this drop strategy at all.

It recognizes exactly four dropStrategies strings – 'drop', 'BAS blocking', 'waiting queue', 'retrial' (a lookupswitch on String.hashCode in jmt/engine/NodeSections/Queue.class; the Storage section of a Place is even narrower and drops 'retrial'). An unrecognized value falls through the default arm with NO flag set, so BBS, RSRD and retrial-with-limit are not approximated, they are IGNORED.

Definition at line 408 of file jmt_writer.h.

References jmt_reads_drop().

Referenced by jmt_reads_drop().

◆ jmt_ref_class()

void line::io::jmt_ref_class ( xml::Element & parent,
const std::string & class_name )
inline

<refClass>NAME</refClass>, the per-class marker of an array parameter.

Definition at line 380 of file jmt_writer.h.

References line::xml::Element::add_text_child(), and jmt_ref_class().

Referenced by jmt_ref_class().

◆ jmt_scalar()

xml::Element & line::io::jmt_scalar ( xml::Element & parent,
const char * class_path,
const char * name,
const std::string & value )
inline

<subParameter classPath="java.lang.Double" name="NAME"><value>V</value>

Definition at line 81 of file jmt_dist.h.

References line::xml::Element::add_child(), line::xml::Element::add_text_child(), jmt_scalar(), and line::xml::Element::set_attr().

Referenced by jmt_append_distribution(), jmt_append_row(), jmt_double(), and jmt_scalar().

◆ jmt_sections()

template<class T>
JmtSections< T > line::io::jmt_sections ( const qn::NetworkStruct< T > & sn,
std::size_t ind )

◆ jmt_sig2()

std::string line::io::jmt_sig2 ( double x)
inline

num2str(x, 2): the two-significant-digit form used for alpha/precision.

Definition at line 74 of file jmt_dist.h.

References jmt_sig2().

Referenced by jmt_sig2().

◆ jmt_write_jsim()

template<class T>
std::string line::io::jmt_write_jsim ( const qn::NetworkStruct< T > & sn,
const JmtWriteOptions & opt )

Port of @@JMTIO/writeJSIM.m: serialize sn as a JMT .jsimg document.

Definition at line 2848 of file jmt_writer.h.

References jmt_write_jsim(), and line::io::JmtWriter< T >::write_jsim().

Referenced by jmt_write_jsim(), and line::jmt::solver_jmt_run_analyzer().

◆ jsim_stage_stdin()

std::string line::io::jsim_stage_stdin ( const std::string & text)
inline

Write a piped XML model document to a temporary file and return its path.

Shared by the JMT and PNML paths: both readers walk a DOM built by xml::parse_file, which takes a path, and a document arriving on stdin has none. Staging it is the whole of the difference; the caller removes the file. The messages name no reader, since either may be the caller.

Definition at line 871 of file jsim_reader.h.

References line::InputError::InputError(), and jsim_stage_stdin().

Referenced by jsim_stage_stdin().

◆ line_citations()

std::vector< Citation > line::io::line_citations ( const std::vector< std::string > & method_names)

The references for METHOD NAMES, de-duplicated by key, in order of appearance.

Definition at line 1564 of file line_citations.cpp.

References citation_registry(), and line_citations().

Referenced by line_citations(), and line_citations_for_method().

◆ line_citations_for_method()

std::vector< Citation > line::io::line_citations_for_method ( const std::string & method)

Convenience for the default/<actual> compound a solver reports.

Definition at line 1587 of file line_citations.cpp.

References line_citations(), and line_citations_for_method().

Referenced by line_citations_for_method().

◆ map2renv()

template<class T>
env::Environment< T > line::io::map2renv ( const qn::NetworkStruct< T > & base,
Map2RenvInfo< T > * info = nullptr,
std::size_t max_stages = 64 )

◆ mapqn2renv()

template<class T>
env::Environment< T > line::io::mapqn2renv ( const qn::NetworkStruct< T > & base,
Map2RenvInfo< T > * info = nullptr,
std::size_t max_stages = 64 )

Retained name for the transformation now implemented by map2renv, which generalizes it from a single MMPP2 service process to any number of MAP, MMPP2 or MMAP processes of arbitrary phase order.

New code should call map2renv directly.

Definition at line 182 of file map2renv.h.

References map2renv(), and mapqn2renv().

Referenced by mapqn2renv().

◆ marshal_scalar()

template<class T>
ExactValue line::io::marshal_scalar ( const T & v)

Marshal any T; only the exact instantiation fills numerator/denominator.

Definition at line 110 of file marshal.h.

References line::io::ExactValue::approx, line::io::ExactValue::denominator, exact_denominator(), exact_numerator(), line::io::ExactValue::is_exact, marshal_scalar(), and line::io::ExactValue::numerator.

Referenced by marshal_scalar().

◆ network_json_envelope()

template<class T>
detail::json line::io::network_json_envelope ( const qn::NetworkStruct< T > & sn)

The complete model.json envelope: {format, version, model}.

Definition at line 1412 of file network_writer.h.

References network_json_envelope(), and network_to_json().

Referenced by network_json_envelope(), line::ldes::solver_ldes(), and write_network_json().

◆ network_to_json()

template<class T>
detail::json line::io::network_to_json ( const qn::NetworkStruct< T > & sn)

qn::NetworkStruct -> the model.json model object.

Takes the struct rather than the qn::Network builder because that is what a solver holds, and because get_struct() is what the builder hands out.

Definition at line 525 of file network_writer.h.

References line::qn::CacheParam< T >::accost, line::qn::Station< T >::arrival_batch, line::qn::Station< T >::balking, line::qn::Station< T >::batch_reject, line::pfqn::SdrStruct::branch, line::pfqn::SdrStruct::C, line::qn::Station< T >::cap, line::lang::CATASTROPHE, line::qn::Station< T >::cdscaling, line::qn::Station< T >::cdscalingpeak, line::qn::Station< T >::classcap, line::qn::CacheParam< T >::classitem, line::lang::CLOSED, line::Matrix< T >::cols(), line::qn::Station< T >::ServerType::compatible, line::qn::CacheParam< T >::costcap, line::qn::CacheParam< T >::costcapglobal, line::qn::Station< T >::ServerType::count, line::pfqn::SdrStruct::d, line::qn::JobClass::deadline, line::lang::Delay, line::pfqn::SdrStruct::departure, line::qn::Station< T >::departure_discipline, line::lang::Distrib< T >::disabled, line::lang::DPS, line::lang::DPSPRIO, line::qn::Station< T >::droprule, line::Matrix< T >::empty(), line::pfqn::SdrStruct::entry, line::lang::Distrib< T >::exp_rate(), line::qn::ForkParam< T >::fan_out_dist, line::qn::ForkParam< T >::fan_out_link, line::qn::ForkParam< T >::fan_out_prob, line::lang::FCFS, line::qn::NodeDef::LoggerParam::file_name, line::lang::Fork, line::lang::GPS, line::lang::GPSPRIO, line::qn::Station< T >::hetero_policy, line::qn::CacheParam< T >::hitclass, line::lang::IMMEDIATE, line::qn::JobClass::immfeed, line::qn::Station< T >::immfeed, line::qn::Station< T >::impatience, line::qn::CacheParam< T >::initstate, line::InputError::InputError(), line::qn::JobClass::is_ref_class, line::qn::CacheParam< T >::itemcap, line::qn::CacheParam< T >::itemsize, line::qn::Station< T >::jdscaling, line::qn::Station< T >::jdscalingpeak, line::lang::Join, line::pfqn::SdrStruct::level, line::qn::Station< T >::lldscaling, line::lang::Logger, line::qn::NodeDef::logger, line::qn::Station< T >::marked_classes, line::qn::CacheParam< T >::missclass, line::qn::JobClass::name, line::qn::NodeDef::name, line::qn::Station< T >::ServerType::name, network_to_json(), line::qn::CacheParam< T >::nitems, line::qn::NodeDef::nodetype, line::lang::NONE, line::lang::NORMAL, line::qn::Station< T >::nservers, line::qn::Station< T >::orbit_impatience, line::lang::ORDER, line::lang::Distrib< T >::params, line::lang::PARTIAL, line::qn::Station< T >::patience, line::lang::Place, line::qn::Station< T >::polling_par, line::qn::Station< T >::polling_type, line::qn::JobClass::population, line::qn::CacheParam< T >::pread, line::qn::JobClass::prio, line::lang::PROB, line::qn::CacheParam< T >::qlru, line::lang::Queue, line::lang::RANDOM, line::qn::JobClass::refstat, line::qn::CacheParam< T >::replacestrat, line::lang::REPLY, line::qn::CacheParam< T >::retrieval_capacity, line::qn::CacheParam< T >::retrieval_classes, line::qn::CacheParam< T >::retrieval_queues, line::qn::NodeDef::routing, line::qn::NodeDef::routing_param, line::qn::NodeDef::routing_weights, line::Matrix< T >::rows(), line::qn::Station< T >::sched, line::qn::Station< T >::schedparam, line::lang::SDR, line::qn::JobClass::self_looping, line::qn::Station< T >::server_parallelism, line::qn::Station< T >::server_types, line::qn::Station< T >::ServerType::service, line::lang::Source, line::qn::JobClass::spawn, line::qn::NodeDef::station, line::qn::Station< T >::switchover, line::qn::NodeDef::tasks_per_link, line::lang::Distrib< T >::trace, and line::qn::JobClass::type.

Referenced by network_json_envelope(), and network_to_json().

◆ parse_rational_token()

template<class T>
T line::io::parse_rational_token ( const std::string & tok)

Parse a rational token of the form "3" or "3/10".

Definition at line 62 of file qn_reader.h.

References line::InputError::InputError(), and parse_rational_token().

Referenced by parse_rational_token(), and read_qn().

◆ pnml_load()

◆ pnml_save()

◆ qn2lqn() [1/2]

◆ qn2lqn() [2/2]

template<class T>
lqn::LqnModel< T > line::io::qn2lqn ( qn::Network< T > & model)

MATLAB-compatible model-level entry point; refreshes the Network first.

Definition at line 283 of file qn2lqn.h.

References line::qn::Network< T >::get_struct(), and qn2lqn().

◆ read_environment_json()

template<class T>
env::Environment< T > line::io::read_environment_json ( const std::string & path)

Parse a model.json file into an env::Environment<T>.

Definition at line 321 of file environment_reader.h.

References build_environment_from_json(), line::InputError::InputError(), and read_environment_json().

Referenced by read_environment_json().

◆ read_jsim()

template<class T>
qn::Network< T > line::io::read_jsim ( const std::string & path,
const std::string & name = std::string() )

Read a JSIM document into a Network.

Parameters
paththe .jsim / .jsimg / .jsimw file
namethe model name; the document's own when empty

< 1-based node index in the Network

Definition at line 294 of file jsim_reader.h.

References line::qn::Network< T >::add_class_switch(), line::qn::Network< T >::add_closed_class(), line::qn::Network< T >::add_delay(), line::qn::Network< T >::add_fork(), line::qn::Network< T >::add_join(), line::qn::Network< T >::add_open_class(), line::qn::Network< T >::add_place(), line::qn::Network< T >::add_queue(), line::qn::Network< T >::add_router(), line::qn::Network< T >::add_sink(), line::qn::Network< T >::add_source(), line::qn::Network< T >::add_transition(), line::lang::BAS, line::lang::DISABLED, line::lang::Distrib< T >::disabled_dist(), line::lang::DPS, line::lang::DPSPRIO, line::lang::DROP, line::qn::TransitionParam< T >::enabling, line::lang::FCFS, line::qn::TransitionParam< T >::fireweight, line::qn::TransitionParam< T >::firing, line::qn::TransitionParam< T >::firingdep, line::qn::TransitionParam< T >::firingphases, line::qn::TransitionParam< T >::firingprio, line::qn::TransitionParam< T >::firingproc, line::lang::GPS, line::lang::GPSPRIO, line::lang::HOL, line::lang::IMMEDIATE, line::lang::Distrib< T >::immediate(), line::qn::TransitionParam< T >::inhibiting, line::InputError::InputError(), line::lang::JSQ, line::lang::LCFS, line::lang::LEPT, line::qn::Network< T >::link(), line::lang::LJF, line::qn::TransitionParam< T >::modenames, line::qn::TransitionParam< T >::nmodes, line::qn::TransitionParam< T >::nmodeservers, line::xml::parse_file(), line::lang::Distrib< T >::phases(), line::lang::PROB, line::lang::PS, line::lang::PSPRIO, line::lang::RAND, read_jsim(), line::lang::RROBIN, line::lang::SEPT, line::qn::RoutingMatrix< T >::set(), line::qn::Network< T >::set_arrival(), line::qn::Network< T >::set_capacity(), line::qn::Network< T >::set_class_capacity(), line::qn::Network< T >::set_class_switch_matrix(), line::qn::Network< T >::set_drop_rule(), line::qn::Network< T >::set_initial_marking(), line::qn::Network< T >::set_number_of_servers(), line::qn::Network< T >::set_routing(), line::qn::Network< T >::set_routing_param(), line::qn::Network< T >::set_routing_weights(), line::qn::Network< T >::set_sched_param(), line::qn::Network< T >::set_service(), line::lang::SIRO, line::lang::SJF, line::lang::SQ, line::lang::TIMED, line::qn::TransitionParam< T >::timing, line::UnsupportedError::UnsupportedError(), line::lang::WAITQ, and line::lang::WRROBIN.

Referenced by read_jsim().

◆ read_layered_model()

template<class T>
lqn::LqnStruct< T > line::io::read_layered_model ( const std::string & path)

Read a layered model from either interchange: the LINE model.json or the LQNS .lqnx.

Every layered entry point goes through here, so a caller never has to know which of the two it was handed – and, more to the point, a model.json written by linemodel_save for a LayeredNetwork stops being unreadable merely because the XML reader was the only one wired up.

Definition at line 400 of file lqn_json_reader.h.

References is_layered_json(), read_layered_model(), read_lqn_json(), and line::lqn::read_lqnx().

Referenced by read_layered_model().

◆ read_lqn_json()

template<class T>
lqn::LqnStruct< T > line::io::read_lqn_json ( const std::string & path)

Parse a LayeredNetwork model.json file into an LqnStruct<T>.

Definition at line 378 of file lqn_json_reader.h.

References build_lqn_from_json(), line::InputError::InputError(), and read_lqn_json().

Referenced by read_layered_model(), and read_lqn_json().

◆ read_network_json()

template<class T>
qn::Network< T > line::io::read_network_json ( const std::string & path)

Parse a model.json file into a qn::Network<T>.

Definition at line 2482 of file network_reader.h.

References build_network_from_json(), line::InputError::InputError(), and read_network_json().

Referenced by main(), and read_network_json().

◆ read_qn()

◆ read_workflow_json()

template<class T>
workflow::Workflow< T > line::io::read_workflow_json ( const std::string & path)

Read a Workflow model.json off disk.

Definition at line 216 of file workflow_reader.h.

References build_workflow_from_json(), line::InputError::InputError(), and read_workflow_json().

Referenced by read_workflow_json().

◆ to_column_major()

template<class T>
void line::io::to_column_major ( const Matrix< T > & m,
double * out )

Write a Matrix into a column-major host buffer, as doubles.

Definition at line 77 of file marshal.h.

References line::Matrix< T >::cols(), line::Matrix< T >::empty(), line::InputError::InputError(), line::Matrix< T >::rows(), and to_column_major().

Referenced by to_column_major().

◆ to_host()

template<class T>
void line::io::to_host ( const std::vector< T > & v,
double * out )

Write a vector into a host buffer, as doubles.

Definition at line 86 of file marshal.h.

References line::InputError::InputError(), and to_host().

Referenced by to_host().

◆ write_jmva()

template<class T>
std::string line::io::write_jmva ( const qn::NetworkStruct< T > & L,
const std::string & path,
const std::string & method,
std::size_t samples )

◆ write_network_json()

template<class T>
void line::io::write_network_json ( const qn::NetworkStruct< T > & sn,
const std::string & path )

Write a model.json file, indented as the reference writers indent it.

Definition at line 1423 of file network_writer.h.

References line::InputError::InputError(), network_json_envelope(), and write_network_json().

Referenced by write_network_json().

Variable Documentation

◆ DOCKER_DEFAULT_MIN_FREE_BYTES

const long long line::io::DOCKER_DEFAULT_MIN_FREE_BYTES = 2LL * 1024 * 1024 * 1024
static

Conservative free-space floor required before a pull (2 GiB).

Definition at line 46 of file docker_image.h.

Referenced by docker_has_storage_for().