# ================ # = Dependencies = # ================ # Make decoupling easier with an informed LoadPath $:.unshift(File.dirname(__FILE__)) $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), 'fathom'))) require 'rubygems' require "gsl" require 'options_hash' require 'ext/open_struct' require 'ext/array' require 'ext/string' module Fathom lib = File.expand_path(File.dirname(__FILE__)) $LOAD_PATH.unshift(lib) # Autoload classes and modules so that we only load as much of the library as we're using. # This allows us to have a fairly large library without taking up a lot of memory unless we need it. autoload :Node, "node" autoload :BeliefNode, "node/belief_node" autoload :DataCollection, "node/data_collection" autoload :DataNode, "node/data_node" autoload :DiscreteNode, "node/discrete_node" autoload :MCNode, "node/mc_node" autoload :PlausibleRange, "node/plausible_range" autoload :Fact, "node/fact" autoload :Decision, "node/decision" autoload :CPMNode, 'node/cpm_node' autoload :ValueDescription, "value_description" autoload :MonteCarloSet, "monte_carlo_set" autoload :KnowledgeBase, "knowledge_base" autoload :Import, "import" autoload :ImportNode, "import/import_node" autoload :YAMLImport, 'import/yaml_import' autoload :CSVImport, 'import/csv_import' # autoload :RDFImport, 'import/rdf_import' # autoload :SQLiteImport, 'import/sqlite_import' autoload :Simulation, 'simulation' autoload :TickMethods, 'simulation/tick_methods' autoload :TickSimulation, 'simulation/tick_simulation' autoload :Agent, 'agent' autoload :Properties, 'agent/properties' autoload :AgentCluster, 'agent/agent_cluster' autoload :EnforcedName, 'node/node_extensions/enforced_name' autoload :NumericMethods, 'node/node_extensions/numeric_methods' require 'distributions' module Distributions autoload :Gaussian, 'distributions/gaussian' autoload :Uniform, 'distributions/uniform' autoload :DiscreteGaussian, 'distributions/discrete_gaussian' autoload :DiscreteUniform, 'distributions/discrete_uniform' end def knowledge_base @knowledge_base ||= KnowledgeBase.new end alias :kb :knowledge_base end # Temporary # include Fathom