rubyneat 0.3.5.alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.directory +4 -0
- data/.gitignore.orig +20 -0
- data/.idea/.name +1 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/dictionaries/trader.xml +3 -0
- data/.idea/encodings.xml +5 -0
- data/.idea/misc.xml +5 -0
- data/.idea/modules.xml +9 -0
- data/.idea/rubyneat.iml +197 -0
- data/.idea/runConfigurations/invpend_neat.xml +26 -0
- data/.idea/runConfigurations/sigdebug_neat.xml +24 -0
- data/.idea/runConfigurations/xor_neat.xml +26 -0
- data/.idea/runConfigurations/xordebug_neat.xml +24 -0
- data/.idea/runConfigurations/xorsin_neat.xml +24 -0
- data/.idea/scopes/scope_settings.xml +5 -0
- data/.idea/vcs.xml +7 -0
- data/.idea/workspace.xml +1124 -0
- data/.semver +5 -0
- data/.yardoc/checksums +11 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/Gemfile +32 -0
- data/Gemfile.lock +135 -0
- data/Gemfile.lock.orig +147 -0
- data/Guardfile +8 -0
- data/Rakefile +61 -0
- data/bin/neat +83 -0
- data/config/application.rb +5 -0
- data/doc/ControllerPoint.html +125 -0
- data/doc/CuteA.html +286 -0
- data/doc/CuteB.html +297 -0
- data/doc/DSL.html +883 -0
- data/doc/NEAT/BasicNeuronTypes/BiasNeuron.html +518 -0
- data/doc/NEAT/BasicNeuronTypes/CosineNeuron.html +274 -0
- data/doc/NEAT/BasicNeuronTypes/InputNeuron.html +366 -0
- data/doc/NEAT/BasicNeuronTypes/SigmoidNeuron.html +275 -0
- data/doc/NEAT/BasicNeuronTypes/SineNeuron.html +274 -0
- data/doc/NEAT/BasicNeuronTypes/TanhNeuron.html +274 -0
- data/doc/NEAT/BasicNeuronTypes.html +136 -0
- data/doc/NEAT/Controller/NeatSettings.html +3985 -0
- data/doc/NEAT/Controller.html +2490 -0
- data/doc/NEAT/Critter/Genotype/Gene.html +979 -0
- data/doc/NEAT/Critter/Genotype.html +1601 -0
- data/doc/NEAT/Critter/Phenotype.html +603 -0
- data/doc/NEAT/Critter.html +1037 -0
- data/doc/NEAT/DSL.html +1255 -0
- data/doc/NEAT/Evaluator.html +420 -0
- data/doc/NEAT/Evolver/CritterOp.html +551 -0
- data/doc/NEAT/Evolver.html +602 -0
- data/doc/NEAT/Expressor.html +327 -0
- data/doc/NEAT/Graph/DependencyResolver.html +478 -0
- data/doc/NEAT/Graph/GraphException.html +123 -0
- data/doc/NEAT/Graph.html +402 -0
- data/doc/NEAT/NeatException.html +123 -0
- data/doc/NEAT/NeatOb.html +567 -0
- data/doc/NEAT/Neuron.html +1067 -0
- data/doc/NEAT/Operator.html +162 -0
- data/doc/NEAT/Population.html +1961 -0
- data/doc/NEAT/Trait.html +169 -0
- data/doc/NEAT.html +588 -0
- data/doc/_index.html +373 -0
- data/doc/class_list.html +54 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +339 -0
- data/doc/file_list.html +53 -0
- data/doc/frames.html +26 -0
- data/doc/index.html +373 -0
- data/doc/js/app.js +219 -0
- data/doc/js/full_list.js +178 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +1415 -0
- data/doc/top-level-namespace.html +164 -0
- data/foo/foo_aquarium_example.rb +38 -0
- data/foo/foo_gosu.rb +99 -0
- data/foo/foo_rubygoo.rb +104 -0
- data/foo/foo_sdl.rb +34 -0
- data/foo/icon.png +0 -0
- data/lib/rubyneat/critter.rb +374 -0
- data/lib/rubyneat/default_neat.rb +10 -0
- data/lib/rubyneat/dsl.rb +130 -0
- data/lib/rubyneat/evaluator.rb +51 -0
- data/lib/rubyneat/evolver.rb +315 -0
- data/lib/rubyneat/expressor.rb +110 -0
- data/lib/rubyneat/graph.rb +95 -0
- data/lib/rubyneat/neuron.rb +152 -0
- data/lib/rubyneat/population.rb +227 -0
- data/lib/rubyneat/rubyneat.rb +429 -0
- data/lib/rubyneat.rb +8 -0
- data/neater/invpend_neat.rb +150 -0
- data/neater/rnlib/inverted_pendulum.rb +380 -0
- data/neater/rnlib/xor.rb +10 -0
- data/neater/sigdebug_neat.rb +136 -0
- data/neater/xor_neat.rb +137 -0
- data/neater/xoranalog_neat.rb +138 -0
- data/neater/xorsin_neat.rb +143 -0
- data/projectFilesBackup/.idea/rubyneat.iml +180 -0
- data/public/.directory +4 -0
- data/public/background.png +0 -0
- data/public/background.xcf +0 -0
- data/public/cart.png +0 -0
- data/public/cart.xcf +0 -0
- data/public/metalpoles_molton_ball_l.jpg +0 -0
- data/public/old_background.png +0 -0
- data/public/pointer.png +0 -0
- data/public/pointer.xcf +0 -0
- data/public/pole.kra +0 -0
- data/public/pole.png +0 -0
- data/public/pole.xcf +0 -0
- data/public/wheel-of-year-stone-DD-131-WOYS.jpg +0 -0
- data/public/wheel.png +0 -0
- data/public/wheel.xcf +0 -0
- data/public/wood-planks-texture.jpg +0 -0
- data/rdoc/ControllerPoint.html +116 -0
- data/rdoc/CuteA.html +177 -0
- data/rdoc/CuteB.html +178 -0
- data/rdoc/DSLSetup.html +177 -0
- data/rdoc/GameTestWindow.html +242 -0
- data/rdoc/GameWindow.html +292 -0
- data/rdoc/Gemfile.html +215 -0
- data/rdoc/Gemfile_lock.html +327 -0
- data/rdoc/GraphTest.html +210 -0
- data/rdoc/Guardfile.html +198 -0
- data/rdoc/InvertedPendulum/Cart.html +668 -0
- data/rdoc/InvertedPendulum/DSL.html +259 -0
- data/rdoc/InvertedPendulum/InvPendWindow.html +402 -0
- data/rdoc/InvertedPendulum.html +198 -0
- data/rdoc/Logger.html +98 -0
- data/rdoc/NEAT/BasicNeuronTypes/BiasNeuron.html +265 -0
- data/rdoc/NEAT/BasicNeuronTypes/CosineNeuron.html +162 -0
- data/rdoc/NEAT/BasicNeuronTypes/InputNeuron.html +206 -0
- data/rdoc/NEAT/BasicNeuronTypes/SigmoidNeuron.html +162 -0
- data/rdoc/NEAT/BasicNeuronTypes/SineNeuron.html +162 -0
- data/rdoc/NEAT/BasicNeuronTypes/TanhNeuron.html +161 -0
- data/rdoc/NEAT/BasicNeuronTypes.html +107 -0
- data/rdoc/NEAT/Controller/NeatSettings.html +880 -0
- data/rdoc/NEAT/Controller.html +729 -0
- data/rdoc/NEAT/Critter/Genotype/Gene.html +457 -0
- data/rdoc/NEAT/Critter/Genotype.html +735 -0
- data/rdoc/NEAT/Critter/Phenotype.html +330 -0
- data/rdoc/NEAT/Critter.html +489 -0
- data/rdoc/NEAT/DSL.html +729 -0
- data/rdoc/NEAT/Evaluator.html +256 -0
- data/rdoc/NEAT/Evolver/CritterOp.html +349 -0
- data/rdoc/NEAT/Evolver.html +891 -0
- data/rdoc/NEAT/Expressor.html +402 -0
- data/rdoc/NEAT/Graph/DependencyResolver.html +291 -0
- data/rdoc/NEAT/Graph/GraphException.html +105 -0
- data/rdoc/NEAT/Graph.html +263 -0
- data/rdoc/NEAT/NeatException.html +105 -0
- data/rdoc/NEAT/NeatOb.html +325 -0
- data/rdoc/NEAT/Neuron.html +481 -0
- data/rdoc/NEAT/Operator.html +109 -0
- data/rdoc/NEAT/Population.html +935 -0
- data/rdoc/NEAT/Trait.html +117 -0
- data/rdoc/NEAT.html +422 -0
- data/rdoc/Object.html +384 -0
- data/rdoc/Phi.html +98 -0
- data/rdoc/Player.html +383 -0
- data/rdoc/Rakefile.html +254 -0
- data/rdoc/RubyNEAT/Application.html +105 -0
- data/rdoc/RubyNEAT.html +98 -0
- data/rdoc/SDL/Event2.html +98 -0
- data/rdoc/SDL.html +98 -0
- data/rdoc/Vector.html +195 -0
- data/rdoc/created.rid +125 -0
- data/rdoc/doc/ControllerPoint_html.html +299 -0
- data/rdoc/doc/CuteA_html.html +438 -0
- data/rdoc/doc/CuteB_html.html +436 -0
- data/rdoc/doc/DSL_html.html +992 -0
- data/rdoc/doc/NEAT/BasicNeuronTypes/BiasNeuron_html.html +617 -0
- data/rdoc/doc/NEAT/BasicNeuronTypes/CosineNeuron_html.html +413 -0
- data/rdoc/doc/NEAT/BasicNeuronTypes/InputNeuron_html.html +498 -0
- data/rdoc/doc/NEAT/BasicNeuronTypes/SigmoidNeuron_html.html +413 -0
- data/rdoc/doc/NEAT/BasicNeuronTypes/SineNeuron_html.html +413 -0
- data/rdoc/doc/NEAT/BasicNeuronTypes/TanhNeuron_html.html +412 -0
- data/rdoc/doc/NEAT/BasicNeuronTypes_html.html +310 -0
- data/rdoc/doc/NEAT/Controller/NeatSettings_html.html +3324 -0
- data/rdoc/doc/NEAT/Controller_html.html +2212 -0
- data/rdoc/doc/NEAT/Critter/Genotype/Gene_html.html +997 -0
- data/rdoc/doc/NEAT/Critter/Genotype_html.html +1556 -0
- data/rdoc/doc/NEAT/Critter/Phenotype_html.html +687 -0
- data/rdoc/doc/NEAT/Critter_html.html +1037 -0
- data/rdoc/doc/NEAT/DSL_html.html +1349 -0
- data/rdoc/doc/NEAT/Evaluator_html.html +556 -0
- data/rdoc/doc/NEAT/Evolver/CritterOp_html.html +690 -0
- data/rdoc/doc/NEAT/Evolver_html.html +677 -0
- data/rdoc/doc/NEAT/Expressor_html.html +468 -0
- data/rdoc/doc/NEAT/Graph/DependencyResolver_html.html +598 -0
- data/rdoc/doc/NEAT/Graph/GraphException_html.html +299 -0
- data/rdoc/doc/NEAT/Graph_html.html +527 -0
- data/rdoc/doc/NEAT/NeatException_html.html +299 -0
- data/rdoc/doc/NEAT/NeatOb_html.html +671 -0
- data/rdoc/doc/NEAT/Neuron_html.html +1095 -0
- data/rdoc/doc/NEAT/Operator_html.html +337 -0
- data/rdoc/doc/NEAT/Population_html.html +1795 -0
- data/rdoc/doc/NEAT/Trait_html.html +344 -0
- data/rdoc/doc/NEAT_html.html +736 -0
- data/rdoc/doc/_index_html.html +559 -0
- data/rdoc/doc/class_list_html.html +369 -0
- data/rdoc/doc/css/common_css.html +188 -0
- data/rdoc/doc/css/full_list_css.html +243 -0
- data/rdoc/doc/css/style_css.html +530 -0
- data/rdoc/doc/file_list_html.html +240 -0
- data/rdoc/doc/frames_html.html +217 -0
- data/rdoc/doc/index_html.html +559 -0
- data/rdoc/doc/js/app_js.html +423 -0
- data/rdoc/doc/js/full_list_js.html +372 -0
- data/rdoc/doc/js/jquery_js.html +1536 -0
- data/rdoc/doc/method_list_html.html +1375 -0
- data/rdoc/doc/top-level-namespace_html.html +317 -0
- data/rdoc/fonts/Lato-Light.ttf +0 -0
- data/rdoc/fonts/Lato-LightItalic.ttf +0 -0
- data/rdoc/fonts/Lato-Regular.ttf +0 -0
- data/rdoc/fonts/Lato-RegularItalic.ttf +0 -0
- data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/rdoc/fonts.css +167 -0
- data/rdoc/images/add.png +0 -0
- data/rdoc/images/arrow_up.png +0 -0
- data/rdoc/images/brick.png +0 -0
- data/rdoc/images/brick_link.png +0 -0
- data/rdoc/images/bug.png +0 -0
- data/rdoc/images/bullet_black.png +0 -0
- data/rdoc/images/bullet_toggle_minus.png +0 -0
- data/rdoc/images/bullet_toggle_plus.png +0 -0
- data/rdoc/images/date.png +0 -0
- data/rdoc/images/delete.png +0 -0
- data/rdoc/images/find.png +0 -0
- data/rdoc/images/loadingAnimation.gif +0 -0
- data/rdoc/images/macFFBgHack.png +0 -0
- data/rdoc/images/package.png +0 -0
- data/rdoc/images/page_green.png +0 -0
- data/rdoc/images/page_white_text.png +0 -0
- data/rdoc/images/page_white_width.png +0 -0
- data/rdoc/images/plugin.png +0 -0
- data/rdoc/images/ruby.png +0 -0
- data/rdoc/images/tag_blue.png +0 -0
- data/rdoc/images/tag_green.png +0 -0
- data/rdoc/images/transparent.png +0 -0
- data/rdoc/images/wrench.png +0 -0
- data/rdoc/images/wrench_orange.png +0 -0
- data/rdoc/images/zoom.png +0 -0
- data/rdoc/index.html +282 -0
- data/rdoc/js/darkfish.js +140 -0
- data/rdoc/js/jquery.js +18 -0
- data/rdoc/js/navigation.js +142 -0
- data/rdoc/js/search.js +109 -0
- data/rdoc/js/search_index.js +1 -0
- data/rdoc/js/searcher.js +228 -0
- data/rdoc/rdoc.css +580 -0
- data/rdoc/rubyneat_gemspec.html +387 -0
- data/rdoc/table_of_contents.html +2502 -0
- data/rdoc/xordebug_log.html +170598 -0
- data/rdoc/xorsin_log.html +22569 -0
- data/rubyneat.gemspec +347 -0
- data/rubyneat.gemspec.orig +375 -0
- data/spec/lib/rubyneat/rubyneat_spec.rb +132 -0
- metadata +555 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var search_data = {"index":{"searchIndex":["controllerpoint","cutea","cuteb","dslsetup","gametestwindow","gamewindow","graphtest","invertedpendulum","cart","dsl","invpendwindow","logger","neat","basicneurontypes","biasneuron","cosineneuron","inputneuron","sigmoidneuron","sineneuron","tanhneuron","controller","neatsettings","critter","genotype","gene","phenotype","dsl","evaluator","evolver","critterop","expressor","graph","dependencyresolver","graphexception","neatexception","neatob","neuron","operator","population","trait","object","phi","player","rubyneat","application","sdl","event2","vector","<<()","[]()","[]()","[]()","[]=()","accelerate()","add()","add_gene!()","add_genes()","add_neuron!()","add_neurons()","analyze!()","analyze_for_fitness!()","basis()","best_critter()","bias?()","bias?()","bias?()","big_bang()","button_down()","button_down()","button_down()","button_up()","button_up()","cart()","clear_graph()","compare()","compare()","condition_boolean_vector()","controller()","controller=()","cost()","create_controller()","create_nodes()","define()","disable_gene!()","disabled?()","dpp()","draw()","draw()","draw()","draw()","draw()","dump_s()","dump_s()","dump_s()","dump_s()","enabled?()","evaluate!()","evaluate!()","evaluate!()","evolve()","evolve()","evolve()","express()","express()","express()","express()","express()","express()","express()","express!()","express!()","express!()","express!()","express_expression!()","express_genes!()","express_neurons!()","fitness()","fitness_cost()","forget!()","gaussian()","gaussian()","gen_initial_genes!()","inherited()","initialize_for_recurrence!()","initialize_neurons!()","innervate!()","input?()","input?()","input?()","inputs()","invpend()","ipwin=()","list_neaters()","list_neurons()","log()","log()","mate!()","method_missing()","move()","mutate!()","mutate!()","mutate_add_genes!()","mutate_add_neurons!()","mutate_change_gene_weights!()","mutate_change_neurons!()","mutate_disable_genes!()","mutate_perturb_gene_weights!()","mutate_reenable_genes!()","needs_cursor?()","neucleate()","neuron_types()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new()","new_innovation()","new_innovation()","nuke_redundancies!()","output?()","pgraph()","prepare_fitness!()","prepare_novelty!()","prepare_speciation!()","prune!()","query()","random_name_generator()","ready_for_evaluation()","ready_for_expression!()","recurrence()","reenable_gene!()","report()","report()","report_best_fit()","report_fitness()","report_fitness_species()","report_worst_fit()","resolve()","resolve!()","run()","run_engine()","sex()","show()","simple_fitness_error()","speciate!()","stimulate()","stop_on_fitness()","to_s()","to_s()","to_s()","to_s()","turn_left()","turn_right()","uncondition_boolean_vector()","update()","update()","update()","update()","update_cart()","warp()","wire!()","worst_critter()","xor()","xor()","gemfile","gemfile.lock","guardfile","rakefile","controllerpoint.html","cutea.html","cuteb.html","dsl.html","neat.html","basicneurontypes.html","biasneuron.html","cosineneuron.html","inputneuron.html","sigmoidneuron.html","sineneuron.html","tanhneuron.html","controller.html","neatsettings.html","critter.html","genotype.html","gene.html","phenotype.html","dsl.html","evaluator.html","evolver.html","critterop.html","expressor.html","graph.html","dependencyresolver.html","graphexception.html","neatexception.html","neatob.html","neuron.html","operator.html","population.html","trait.html","_index.html","class_list.html","common.css","full_list.css","style.css","file_list.html","frames.html","index.html","app.js","full_list.js","jquery.js","method_list.html","top-level-namespace.html","foo.dump.log","rubyneat.gemspec","xordebug.log","xorsin.log"],"longSearchIndex":["controllerpoint","cutea","cuteb","dslsetup","gametestwindow","gamewindow","graphtest","invertedpendulum","invertedpendulum::cart","invertedpendulum::dsl","invertedpendulum::invpendwindow","logger","neat","neat::basicneurontypes","neat::basicneurontypes::biasneuron","neat::basicneurontypes::cosineneuron","neat::basicneurontypes::inputneuron","neat::basicneurontypes::sigmoidneuron","neat::basicneurontypes::sineneuron","neat::basicneurontypes::tanhneuron","neat::controller","neat::controller::neatsettings","neat::critter","neat::critter::genotype","neat::critter::genotype::gene","neat::critter::phenotype","neat::dsl","neat::evaluator","neat::evolver","neat::evolver::critterop","neat::expressor","neat::graph","neat::graph::dependencyresolver","neat::graph::graphexception","neat::neatexception","neat::neatob","neat::neuron","neat::operator","neat::population","neat::trait","object","phi","player","rubyneat","rubyneat::application","sdl","sdl::event2","vector","neat::graph#<<()","neat::critter::genotype::gene::[]()","neat::critter::phenotype::[]()","neat::graph::dependencyresolver::[]()","vector#[]=()","player#accelerate()","neat::graph#add()","neat::evolver::critterop#add_gene!()","neat::critter::genotype#add_genes()","neat::evolver::critterop#add_neuron!()","neat::critter::genotype#add_neurons()","neat::population#analyze!()","neat::evaluator#analyze_for_fitness!()","vector#basis()","neat::population#best_critter()","neat::basicneurontypes::biasneuron::bias?()","neat::neuron#bias?()","neat::neuron::bias?()","invertedpendulum::cart#big_bang()","gamewindow#button_down()","invertedpendulum::cart#button_down()","invertedpendulum::invpendwindow#button_down()","invertedpendulum::cart#button_up()","invertedpendulum::invpendwindow#button_up()","invertedpendulum::dsl#cart()","neat::graph#clear_graph()","neat::critter#compare()","neat::dsl#compare()","neat::dsl#condition_boolean_vector()","neat::controller()","neat::controller=()","neat::dsl#cost()","neat::create_controller()","object#create_nodes()","neat::dsl#define()","neat::evolver::critterop#disable_gene!()","neat::critter::genotype::gene#disabled?()","neat::dpp()","gametestwindow#draw()","gamewindow#draw()","invertedpendulum::cart#draw()","invertedpendulum::invpendwindow#draw()","player#draw()","neat::critter#dump_s()","neat::critter::genotype#dump_s()","neat::critter::genotype::gene#dump_s()","neat::population#dump_s()","neat::critter::genotype::gene#enabled?()","neat::critter#evaluate!()","neat::evaluator#evaluate!()","neat::population#evaluate!()","neat::dsl#evolve()","neat::evolver#evolve()","neat::population#evolve()","neat::basicneurontypes::biasneuron#express()","neat::basicneurontypes::cosineneuron#express()","neat::basicneurontypes::inputneuron#express()","neat::basicneurontypes::sigmoidneuron#express()","neat::basicneurontypes::sineneuron#express()","neat::basicneurontypes::tanhneuron#express()","neat::neuron#express()","neat::critter#express!()","neat::critter::phenotype#express!()","neat::expressor#express!()","neat::population#express!()","neat::expressor#express_expression!()","neat::expressor#express_genes!()","neat::expressor#express_neurons!()","neat::dsl#fitness()","neat::critter::genotype#fitness_cost()","neat::critter::genotype#forget!()","neat::gaussian()","neat::controller#gaussian()","neat::evolver#gen_initial_genes!()","neat::neuron::inherited()","neat::population#initialize_for_recurrence!()","neat::critter#initialize_neurons!()","neat::critter::genotype#innervate!()","neat::basicneurontypes::inputneuron::input?()","neat::neuron#input?()","neat::neuron::input?()","neat::graph#inputs()","invertedpendulum::dsl#invpend()","invertedpendulum::cart#ipwin=()","object#list_neaters()","object#list_neurons()","neat::neatob::log()","neat::neatob#log()","neat::evolver#mate!()","neat::dsl#method_missing()","player#move()","neat::evolver#mutate!()","neat::population#mutate!()","neat::evolver#mutate_add_genes!()","neat::evolver#mutate_add_neurons!()","neat::evolver#mutate_change_gene_weights!()","neat::evolver#mutate_change_neurons!()","neat::evolver#mutate_disable_genes!()","neat::evolver#mutate_perturb_gene_weights!()","neat::evolver#mutate_reenable_genes!()","invertedpendulum::invpendwindow#needs_cursor?()","neat::critter::genotype#neucleate()","neat::neuron::neuron_types()","cutea::new()","cuteb::new()","gametestwindow::new()","gamewindow::new()","graphtest::new()","invertedpendulum::cart::new()","invertedpendulum::invpendwindow::new()","neat::basicneurontypes::biasneuron::new()","neat::controller::new()","neat::controller::neatsettings::new()","neat::critter::new()","neat::critter::genotype::new()","neat::critter::genotype::gene::new()","neat::evolver::new()","neat::evolver::critterop::new()","neat::expressor::new()","neat::graph::dependencyresolver::new()","neat::neatob::new()","neat::population::new()","player::new()","neat::new_innovation()","neat::controller#new_innovation()","neat::critter::genotype#nuke_redundancies!()","neat::neuron#output?()","object#pgraph()","neat::evolver#prepare_fitness!()","neat::evolver#prepare_novelty!()","neat::evolver#prepare_speciation!()","neat::critter::genotype#prune!()","neat::dsl#query()","neat::random_name_generator()","neat::evaluator#ready_for_evaluation()","neat::critter#ready_for_expression!()","neat::dsl#recurrence()","neat::evolver::critterop#reenable_gene!()","neat::dsl#report()","neat::population#report()","neat::population#report_best_fit()","neat::population#report_fitness()","neat::population#report_fitness_species()","neat::population#report_worst_fit()","neat::graph::dependencyresolver#resolve()","neat::graph::dependencyresolver#resolve!()","neat::controller#run()","neat::dsl#run_engine()","neat::evolver#sex()","invertedpendulum::dsl#show()","neat::dsl#simple_fitness_error()","neat::population#speciate!()","neat::critter::phenotype#stimulate()","neat::dsl#stop_on_fitness()","graphtest#to_s()","neat::critter::genotype::gene#to_s()","neat::critter::phenotype#to_s()","neat::neatob#to_s()","player#turn_left()","player#turn_right()","neat::dsl#uncondition_boolean_vector()","gametestwindow#update()","gamewindow#update()","invertedpendulum::cart#update()","invertedpendulum::invpendwindow#update()","invertedpendulum::cart#update_cart()","player#warp()","neat::critter::genotype#wire!()","neat::population#worst_critter()","dslsetup#xor()","object#xor()","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"info":[["ControllerPoint","","ControllerPoint.html","",""],["CuteA","","CuteA.html","",""],["CuteB","","CuteB.html","",""],["DSLSetup","","DSLSetup.html","",""],["GameTestWindow","","GameTestWindow.html","",""],["GameWindow","","GameWindow.html","",""],["GraphTest","","GraphTest.html","",""],["InvertedPendulum","","InvertedPendulum.html","",""],["InvertedPendulum::Cart","","InvertedPendulum/Cart.html","",""],["InvertedPendulum::DSL","","InvertedPendulum/DSL.html","",""],["InvertedPendulum::InvPendWindow","","InvertedPendulum/InvPendWindow.html","",""],["Logger","","Logger.html","",""],["NEAT","","NEAT.html","","<p>Critter\n<p>RubyNEAT DSL\n<p>DSL is a domain-specific language for RubyNEAT to allow you to configure\nthe NEAT …\n"],["NEAT::BasicNeuronTypes","","NEAT/BasicNeuronTypes.html","","<p>Basic Neuron Types\n<p>Basically, the neurons (nodes) will have an instantiation to represent\ntheir places …\n"],["NEAT::BasicNeuronTypes::BiasNeuron","","NEAT/BasicNeuronTypes/BiasNeuron.html","","<p>Special class of neuron that provides a bias signal.\n\n<pre>FIXME: The bias value is not behaving as expected ...</pre>\n"],["NEAT::BasicNeuronTypes::CosineNeuron","","NEAT/BasicNeuronTypes/CosineNeuron.html","","<p>Cosine function (CPPN) – adjusted to have its +1 and -1 near TanhNeuron\n"],["NEAT::BasicNeuronTypes::InputNeuron","","NEAT/BasicNeuronTypes/InputNeuron.html","","<p>Special class of Neuron that takes input from the “real world”\n\n<pre>Name of this neuron equates to ...</pre>\n"],["NEAT::BasicNeuronTypes::SigmoidNeuron","","NEAT/BasicNeuronTypes/SigmoidNeuron.html","","<p>The most commonly-used neuron for the hidden and output layers. We use the\nLogistic Function for the …\n"],["NEAT::BasicNeuronTypes::SineNeuron","","NEAT/BasicNeuronTypes/SineNeuron.html","","<p>Sin function (CPPN) – adjusted to have its +1 and -1 near TanhNeuron\n"],["NEAT::BasicNeuronTypes::TanhNeuron","","NEAT/BasicNeuronTypes/TanhNeuron.html","","<p>An alternative Sigmoid Function, but ranges -1 to +1\n"],["NEAT::Controller","","NEAT/Controller.html","","<p>Controller for all operations of RubyNEAT\n\n<pre>This object contains all the specifications and details for ...</pre>\n"],["NEAT::Controller::NeatSettings","","NEAT/Controller/NeatSettings.html","","<p>Various parameters affecting evolution. Based somewhat on the C version of\nNEAT. TODO not all of these …\n"],["NEAT::Critter","","NEAT/Critter.html","","<p>Critters for NEAT\n\n<pre class=\"ruby\"><span class=\"ruby-constant\">The</span> <span class=\"ruby-constant\">Critter</span> <span class=\"ruby-keyword\">class</span> <span class=\"ruby-identifier\">comprises</span> <span class=\"ruby-identifier\">a</span> <span class=\"ruby-constant\">Genotype</span> <span class=\"ruby-keyword\">and</span> <span class=\"ruby-identifier\">a</span> <span class=\"ruby-constant\">Phenotype</span>.\n<span class=\"ruby-constant\">The</span> <span class=\"ruby-constant\">Genotype</span> <span class=\"ruby-identifier\">comprises</span> <span class=\"ruby-constant\">Genes</span> <span class=\"ruby-operator\">...</span>\n</pre>\n"],["NEAT::Critter::Genotype","","NEAT/Critter/Genotype.html","","<p>Genotype part of the Critter\n\n<pre>List of connections, basically.\n\nAlso, basic phentypic expression (which ...</pre>\n"],["NEAT::Critter::Genotype::Gene","","NEAT/Critter/Genotype/Gene.html","","<p>Gene Specification\n\n<pre>The Gene specifices a singlular input and\noutput neuron, which represents a connection ...</pre>\n"],["NEAT::Critter::Phenotype","","NEAT/Critter/Phenotype.html","","<p>Phenotype part of the Critter\n\n<pre>This is created by Evolver.</pre>\n"],["NEAT::DSL","","NEAT/DSL.html","",""],["NEAT::Evaluator","","NEAT/Evaluator.html","","<p>Evaluator evaluates phenotype of critter for fitness, novelty, etc.\n\n<pre>We can have a chain of these evaluators ...</pre>\n"],["NEAT::Evolver","","NEAT/Evolver.html","","<p>Evolver – Basis of all evolvers.\n\n<pre>All evolvers shall derive from this basic evolver (or this one can be ...</pre>\n"],["NEAT::Evolver::CritterOp","","NEAT/Evolver/CritterOp.html","","<p>A set of Critter Genotype operators.\n"],["NEAT::Expressor","","NEAT/Expressor.html","","<p>Basis of all expressors. \n\n<pre>Expressor object turn genotypes into phenotypes.</pre>\n"],["NEAT::Graph","","NEAT/Graph.html","","<p>General graph representation (mainly used for Neurons, but could be used\nfor other structures.)\n<p>This is …\n"],["NEAT::Graph::DependencyResolver","","NEAT/Graph/DependencyResolver.html","","<p>Create an instantiation of this and pass it a list of nodes to resolve.\n"],["NEAT::Graph::GraphException","","NEAT/Graph/GraphException.html","",""],["NEAT::NeatException","","NEAT/NeatException.html","",""],["NEAT::NeatOb","","NEAT/NeatOb.html","","<p>Basis of all NEAT objects\n"],["NEAT::Neuron","","NEAT/Neuron.html","","<p>Neuron – Basis of all Neat Neuron types.\n\n<pre>Normally contains primatives which aids in its\nown expression, ...</pre>\n"],["NEAT::Operator","","NEAT/Operator.html","","<p>Base class of operators in RubyNEAT,\n\n<pre>Such as Evolver, etc.</pre>\n"],["NEAT::Population","","NEAT/Population.html","","<p>Population of NEAT Critters.\n\n<pre>The Population \nIn ourselves we have the pool of neurons the critters all ...</pre>\n"],["NEAT::Trait","","NEAT/Trait.html","","<p>Traits\n\n<pre>A Trait is a group of parameters that can be expressed \nas a group more than one time. Traits ...</pre>\n"],["Object","","Object.html","",""],["Phi","","Phi.html","",""],["Player","","Player.html","",""],["RubyNEAT","","RubyNEAT.html","",""],["RubyNEAT::Application","","RubyNEAT/Application.html","",""],["SDL","","SDL.html","",""],["SDL::Event2","","SDL/Event2.html","",""],["Vector","","Vector.html","","<p>We do this for speedier simulations, otherwise Vector is immutable.\n"],["<<","NEAT::Graph","NEAT/Graph.html#method-i-3C-3C","(input)",""],["[]","NEAT::Critter::Genotype::Gene","NEAT/Critter/Genotype/Gene.html#method-c-5B-5D","(genotype, input, output, weight = 0.0, innov = nil)","<p>Create a new Gene and set it up fully.\n\n<pre>genotype -- genotype\ninput -- name of input neuron connection\noutput ...</pre>\n"],["[]","NEAT::Critter::Phenotype","NEAT/Critter/Phenotype.html#method-c-5B-5D","(critter)",""],["[]","NEAT::Graph::DependencyResolver","NEAT/Graph/DependencyResolver.html#method-c-5B-5D","(*outs)","<p>Create a DependencyResolver from either an array of outputs or a parameter\nlist of outputs.\n"],["[]=","Vector","Vector.html#method-i-5B-5D-3D","(i, v)",""],["accelerate","Player","Player.html#method-i-accelerate","()",""],["add","NEAT::Graph","NEAT/Graph.html#method-i-add","(input)","<p>Add a single input\n"],["add_gene!","NEAT::Evolver::CritterOp","NEAT/Evolver/CritterOp.html#method-i-add_gene-21","(crit)","<p>Add a gene to the genome\n\n<pre>Unlike adding a new neuron, adding a new gene\ncould result in a circular dependency. ...</pre>\n"],["add_genes","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-add_genes","(*genes)","<p>Genes added here MUST correspond to pre-existing neurons. Be sure to do\nadd_neurons first!!!!\n"],["add_neuron!","NEAT::Evolver::CritterOp","NEAT/Evolver/CritterOp.html#method-i-add_neuron-21","(crit)","<p>Add a neuron to given critter\n\n<pre>Here, we add a neuron by randomly picking a\ngene, and split it into two ...</pre>\n"],["add_neurons","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-add_neurons","(*neus)","<p>Add new neurons to the fold\n"],["analyze!","NEAT::Population","NEAT/Population.html#method-i-analyze-21","()","<p>Alalyze evaluation results.\n"],["analyze_for_fitness!","NEAT::Evaluator","NEAT/Evaluator.html#method-i-analyze_for_fitness-21","(critter)","<p>Analyze the evaluation and compute a fitness for the given critter. Note\nthat if cost_func is set, we …\n"],["basis","Vector","Vector.html#method-i-basis","(v)","<p>Given that self vector is a basis vector, compute the component vector for\nv.\n"],["best_critter","NEAT::Population","NEAT/Population.html#method-i-best_critter","()","<p>The “best critter” is the critter with the lowest (closet to zero) fitness\nrating.\n"],["bias?","NEAT::BasicNeuronTypes::BiasNeuron","NEAT/BasicNeuronTypes/BiasNeuron.html#method-c-bias-3F","()",""],["bias?","NEAT::Neuron","NEAT/Neuron.html#method-i-bias-3F","()",""],["bias?","NEAT::Neuron","NEAT/Neuron.html#method-c-bias-3F","()",""],["big_bang","InvertedPendulum::Cart","InvertedPendulum/Cart.html#method-i-big_bang","(bb = 0)","\n<pre>Provide a bang for the cart.\nReturn a thrust (acc) vector (really just x)\nbased on thrust</pre>\n<p>@param bb – …\n"],["button_down","GameWindow","GameWindow.html#method-i-button_down","(id)",""],["button_down","InvertedPendulum::Cart","InvertedPendulum/Cart.html#method-i-button_down","(id)",""],["button_down","InvertedPendulum::InvPendWindow","InvertedPendulum/InvPendWindow.html#method-i-button_down","(id)",""],["button_up","InvertedPendulum::Cart","InvertedPendulum/Cart.html#method-i-button_up","(id)",""],["button_up","InvertedPendulum::InvPendWindow","InvertedPendulum/InvPendWindow.html#method-i-button_up","(id)",""],["cart","InvertedPendulum::DSL","InvertedPendulum/DSL.html#method-i-cart","(&block)",""],["clear_graph","NEAT::Graph","NEAT/Graph.html#method-i-clear_graph","()","<p>clear and initialize the graph.\n"],["compare","NEAT::Critter","NEAT/Critter.html#method-i-compare","(oc)","<p>Compare ourselves against another critter for compability.\n<p>The function to be used here is:\n\n<pre>distance = ...</pre>\n"],["compare","NEAT::DSL","NEAT/DSL.html#method-i-compare","(&block)","<p>Fitness ordering – given 2 fitness numbers, use the <=> to compare\nthem (or the equivalent, following …\n"],["condition_boolean_vector","NEAT::DSL","NEAT/DSL.html#method-i-condition_boolean_vector","(vec, sig = :tanh)","<p>Helper function to Condition boolean vectors to be +1 if true, -1 if false\n(0 if sigmoid)\n"],["controller","NEAT","NEAT.html#method-c-controller","()",""],["controller=","NEAT","NEAT.html#method-c-controller-3D","(controller)",""],["cost","NEAT::DSL","NEAT/DSL.html#method-i-cost","(&block)","<p>Calculation to add the cost to the fitness, resulting in a fitness that\nincorporates the cost for sorting …\n"],["create_controller","NEAT","NEAT.html#method-c-create_controller","(*parms)",""],["create_nodes","Object","Object.html#method-i-create_nodes","(n)",""],["define","NEAT::DSL","NEAT/DSL.html#method-i-define","(name = NEAT.random_name_generator, &block)","<p>DSL – Define defines the parameters to the controller.\n"],["disable_gene!","NEAT::Evolver::CritterOp","NEAT/Evolver/CritterOp.html#method-i-disable_gene-21","(crit)","<p>Pick an enabled gene at random and disable it.\n"],["disabled?","NEAT::Critter::Genotype::Gene","NEAT/Critter/Genotype/Gene.html#method-i-disabled-3F","()",""],["dpp","NEAT","NEAT.html#method-c-dpp","(ob)","<p>PrettyPrint to log.debug\n"],["draw","GameTestWindow","GameTestWindow.html#method-i-draw","()",""],["draw","GameWindow","GameWindow.html#method-i-draw","()",""],["draw","InvertedPendulum::Cart","InvertedPendulum/Cart.html#method-i-draw","()",""],["draw","InvertedPendulum::InvPendWindow","InvertedPendulum/InvPendWindow.html#method-i-draw","()",""],["draw","Player","Player.html#method-i-draw","()",""],["dump_s","NEAT::Critter","NEAT/Critter.html#method-i-dump_s","()","<p>Critter print\n"],["dump_s","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-dump_s","()",""],["dump_s","NEAT::Critter::Genotype::Gene","NEAT/Critter/Genotype/Gene.html#method-i-dump_s","()",""],["dump_s","NEAT::Population","NEAT/Population.html#method-i-dump_s","()",""],["enabled?","NEAT::Critter::Genotype::Gene","NEAT/Critter/Genotype/Gene.html#method-i-enabled-3F","()",""],["evaluate!","NEAT::Critter","NEAT/Critter.html#method-i-evaluate-21","()","<p>A single evaluation step. Evaluate and generate fitness, novelty, etc.\nReturns the result.\n"],["evaluate!","NEAT::Evaluator","NEAT/Evaluator.html#method-i-evaluate-21","(critter)","<p>Evaluate one step of a sequence of evaluations. For time series and\nrealtime ongoing evaluations, @controller.seq_num …\n"],["evaluate!","NEAT::Population","NEAT/Population.html#method-i-evaluate-21","()","<p>Called for each sequence.\n"],["evolve","NEAT::DSL","NEAT/DSL.html#method-i-evolve","(&block)","<p>DSL – Run evolution\n"],["evolve","NEAT::Evolver","NEAT/Evolver.html#method-i-evolve","(population)","<p>Here we clone the population and then evolve it on the basis of fitness and\nnovelty, etc.\n<p>Returns the …\n"],["evolve","NEAT::Population","NEAT/Population.html#method-i-evolve","()","<p>Call this after evaluation. Returns a newly-evolved population.\n"],["express","NEAT::BasicNeuronTypes::BiasNeuron","NEAT/BasicNeuronTypes/BiasNeuron.html#method-i-express","(instance)","<p>Just provides a bias signal FIXME: we had to hard-code the value here for\nnow. Not a biggie, FIXME: but …\n"],["express","NEAT::BasicNeuronTypes::CosineNeuron","NEAT/BasicNeuronTypes/CosineNeuron.html#method-i-express","(instance)","<p>create a function on the instance with our name that sums all inputs and\nproduce a sigmoid output (using …\n"],["express","NEAT::BasicNeuronTypes::InputNeuron","NEAT/BasicNeuronTypes/InputNeuron.html#method-i-express","(instance)","<p>Takes a single input and passes it as is.\n"],["express","NEAT::BasicNeuronTypes::SigmoidNeuron","NEAT/BasicNeuronTypes/SigmoidNeuron.html#method-i-express","(instance)","<p>create a function on the instance with our name that sums all inputs and\nproduce a sigmoid output (using …\n"],["express","NEAT::BasicNeuronTypes::SineNeuron","NEAT/BasicNeuronTypes/SineNeuron.html#method-i-express","(instance)","<p>create a function on the instance with our name that sums all inputs and\nproduce a sigmoid output (using …\n"],["express","NEAT::BasicNeuronTypes::TanhNeuron","NEAT/BasicNeuronTypes/TanhNeuron.html#method-i-express","(instance)","<p>create a function on the instance with our name that sums all inputs and\nproduce a sigmoid output (using …\n"],["express","NEAT::Neuron","NEAT/Neuron.html#method-i-express","(instance)","<p>Function must be implemented by subclasses for phenotype generation.\nBasically, an instance is passed …\n"],["express!","NEAT::Critter","NEAT/Critter.html#method-i-express-21","()","<p>Exoress this critter using the Expressor plugin.\n"],["express!","NEAT::Critter::Phenotype","NEAT/Critter/Phenotype.html#method-i-express-21","()","<p>Take what is in code and express that!\n"],["express!","NEAT::Expressor","NEAT/Expressor.html#method-i-express-21","(critter)","<p>Take the genotype of the critter and create a phenotype from the genotype.\n<p>In the phenotype, it creates …\n"],["express!","NEAT::Population","NEAT/Population.html#method-i-express-21","()","<p>Express the entire population.\n"],["express_expression!","NEAT::Expressor","NEAT/Expressor.html#method-i-express_expression-21","(critter)",""],["express_genes!","NEAT::Expressor","NEAT/Expressor.html#method-i-express_genes-21","(critter)","<p>Expression of the Genotype as a Phenotype.\n\n<pre>What this really does is create the function that calls\nall ...</pre>\n"],["express_neurons!","NEAT::Expressor","NEAT/Expressor.html#method-i-express_neurons-21","(critter)","<p>Express Neurons as methods\n"],["fitness","NEAT::DSL","NEAT/DSL.html#method-i-fitness","(&block)","<p>fitness function calls the block with 2 vectors or two hashes, input and\noutput vectors of the critter …\n"],["fitness_cost","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-fitness_cost","()","<p>Calculate the cost of this genotype.\n"],["forget!","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-forget-21","()","<p>Make the neurons forget their wiring.\n"],["gaussian","NEAT","NEAT.html#method-c-gaussian","()","<p>Mixin for the gaussian object.\n"],["gaussian","NEAT::Controller","NEAT/Controller.html#method-i-gaussian","()",""],["gen_initial_genes!","NEAT::Evolver","NEAT/Evolver.html#method-i-gen_initial_genes-21","(genotype)","<p>Generate the initial genes for a given genotype. We key genes off their\ninnovation numbers.\n"],["inherited","NEAT::Neuron","NEAT/Neuron.html#method-c-inherited","(clazz)",""],["initialize_for_recurrence!","NEAT::Population","NEAT/Population.html#method-i-initialize_for_recurrence-21","()","<p>Make sure all critters are reset and prepared for recurrent network\nevaluation.\n"],["initialize_neurons!","NEAT::Critter","NEAT/Critter.html#method-i-initialize_neurons-21","()","<p>This initializes neurons in preparation for recurrence. Note that the\nCritter should already have expressed …\n"],["innervate!","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-innervate-21","(*hneus)","<p>We take the neural hashes (presumably from other neurons), and innervate\nthem. We do this in distinctions …\n"],["input?","NEAT::BasicNeuronTypes::InputNeuron","NEAT/BasicNeuronTypes/InputNeuron.html#method-c-input-3F","()",""],["input?","NEAT::Neuron","NEAT/Neuron.html#method-i-input-3F","()",""],["input?","NEAT::Neuron","NEAT/Neuron.html#method-c-input-3F","()","<p>Class is is of Input type?\n"],["inputs","NEAT::Graph","NEAT/Graph.html#method-i-inputs","()","<p>Get list of inputs\n"],["invpend","InvertedPendulum::DSL","InvertedPendulum/DSL.html#method-i-invpend","(&block)",""],["ipwin=","InvertedPendulum::Cart","InvertedPendulum/Cart.html#method-i-ipwin-3D","(ipwin)",""],["list_neaters","Object","Object.html#method-i-list_neaters","()",""],["list_neurons","Object","Object.html#method-i-list_neurons","()",""],["log","NEAT::NeatOb","NEAT/NeatOb.html#method-c-log","()",""],["log","NEAT::NeatOb","NEAT/NeatOb.html#method-i-log","()",""],["mate!","NEAT::Evolver","NEAT/Evolver.html#method-i-mate-21","()","<p>Here we select candidates for mating. We must look at species and fitness\nto make the selection for mating. …\n"],["method_missing","NEAT::DSL","NEAT/DSL.html#method-i-method_missing","(m, *args, &block)","<p>This is used to handle the details of our DSL.\n"],["move","Player","Player.html#method-i-move","()",""],["mutate!","NEAT::Evolver","NEAT/Evolver.html#method-i-mutate-21","(population)","<p>Here we mutate the population.\n"],["mutate!","NEAT::Population","NEAT/Population.html#method-i-mutate-21","()","<p>Mutate the genes and neurons.\n"],["mutate_add_genes!","NEAT::Evolver","NEAT/Evolver.html#method-i-mutate_add_genes-21","()",""],["mutate_add_neurons!","NEAT::Evolver","NEAT/Evolver.html#method-i-mutate_add_neurons-21","()",""],["mutate_change_gene_weights!","NEAT::Evolver","NEAT/Evolver.html#method-i-mutate_change_gene_weights-21","()","<p>Totally change weights to something completely different\n"],["mutate_change_neurons!","NEAT::Evolver","NEAT/Evolver.html#method-i-mutate_change_neurons-21","()","<p>TODO Finish mutate_change_neurons!\n"],["mutate_disable_genes!","NEAT::Evolver","NEAT/Evolver.html#method-i-mutate_disable_genes-21","()",""],["mutate_perturb_gene_weights!","NEAT::Evolver","NEAT/Evolver.html#method-i-mutate_perturb_gene_weights-21","()","<p>Perturb existing gene weights by adding a guassian to them.\n"],["mutate_reenable_genes!","NEAT::Evolver","NEAT/Evolver.html#method-i-mutate_reenable_genes-21","()",""],["needs_cursor?","InvertedPendulum::InvPendWindow","InvertedPendulum/InvPendWindow.html#method-i-needs_cursor-3F","()",""],["neucleate","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-neucleate","(clean: true, &block)","<p>We add genes given here to the genome. An array of genes is returned from\nthe block and we simply add …\n"],["neuron_types","NEAT::Neuron","NEAT/Neuron.html#method-c-neuron_types","()","<p>List of distinct neuron types (classes)\n"],["new","CuteA","CuteA.html#method-c-new","()",""],["new","CuteB","CuteB.html#method-c-new","()",""],["new","GameTestWindow","GameTestWindow.html#method-c-new","()",""],["new","GameWindow","GameWindow.html#method-c-new","()",""],["new","GraphTest","GraphTest.html#method-c-new","(i)",""],["new","InvertedPendulum::Cart","InvertedPendulum/Cart.html#method-c-new","(ipwin: nil, scale: 0.50, ang: 90.1, xpos: 500.0, ypos: 845.0, cartmass: 200.0, polemass: 100.10, bang: 10.0, thrust_decay: 2.0, window_pix_width: 1280, update_interval: 16.666666, naked: false)","<p>@param ipwin – the windowed canvalss this will be shown. @param scale –\nvisual scale on the canvas. …\n"],["new","InvertedPendulum::InvPendWindow","InvertedPendulum/InvPendWindow.html#method-c-new","(width: 1280, height: 1024)",""],["new","NEAT::BasicNeuronTypes::BiasNeuron","NEAT/BasicNeuronTypes/BiasNeuron.html#method-c-new","(c=nil, n=nil)",""],["new","NEAT::Controller","NEAT/Controller.html#method-c-new","(neural_inputs: nil, neural_outputs: nil, neural_hidden: nil, parameters: NeatSettings.new, &block)","<p>neural_inputs – array of input classes\n<p>neural_outputs – array of output classes\n<p>parameters – NeatParameters …\n"],["new","NEAT::Controller::NeatSettings","NEAT/Controller/NeatSettings.html#method-c-new","()","<p>Set up defaults for mandatory entries.\n"],["new","NEAT::Critter","NEAT/Critter.html#method-c-new","(pop, mating = false, &block)","<p>Critter construction. We construct the genotype. The phenotype will be\nconstructed by the Expressor operator. …\n"],["new","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-c-new","(critter, mating = false, &block)",""],["new","NEAT::Critter::Genotype::Gene","NEAT/Critter/Genotype/Gene.html#method-c-new","(genotype, &block)",""],["new","NEAT::Evolver","NEAT/Evolver.html#method-c-new","(c)",""],["new","NEAT::Evolver::CritterOp","NEAT/Evolver/CritterOp.html#method-c-new","(evol)",""],["new","NEAT::Expressor","NEAT/Expressor.html#method-c-new","(c)",""],["new","NEAT::Graph::DependencyResolver","NEAT/Graph/DependencyResolver.html#method-c-new","(outputs, &block)","<p>Given a list of output nodes, we shall work backwards from them to resolve\ntheir dependencies.\n"],["new","NEAT::NeatOb","NEAT/NeatOb.html#method-c-new","(controller = nil, name = nil)","<p>Initializer for all NEAT objects. Requires that the controller object is\nspecified for all classes with …\n"],["new","NEAT::Population","NEAT/Population.html#method-c-new","(c, &block)","<p>Create initial (ramdom) population of critters\n"],["new","Player","Player.html#method-c-new","(window)",""],["new_innovation","NEAT","NEAT.html#method-c-new_innovation","()","<p>Mixin for new innovation numbers.\n"],["new_innovation","NEAT::Controller","NEAT/Controller.html#method-i-new_innovation","()",""],["nuke_redundancies!","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-nuke_redundancies-21","()","<p>Remove any redundancies in the genome, any genes refering to the same two\nneurons. Simply choose one …\n"],["output?","NEAT::Neuron","NEAT/Neuron.html#method-i-output-3F","()","<p>Instantiation is of outout type?\n"],["pgraph","Object","Object.html#method-i-pgraph","(a, mess)",""],["prepare_fitness!","NEAT::Evolver","NEAT/Evolver.html#method-i-prepare_fitness-21","()","<p>Sort species within the basis of fitness. Think of the fitness as an error\n/ cost function. The better …\n"],["prepare_novelty!","NEAT::Evolver","NEAT/Evolver.html#method-i-prepare_novelty-21","()","<p>TODO: write novelty code\n"],["prepare_speciation!","NEAT::Evolver","NEAT/Evolver.html#method-i-prepare_speciation-21","()","<p>Here we specify evolutionary operators.\n"],["prune!","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-prune-21","()","<p>Go through the list of neurons and drop any neurons not referenced by the\ngenes.\n<p>Then go through the genes …\n"],["query","NEAT::DSL","NEAT/DSL.html#method-i-query","(&block)","<p>Query function is called with the sequence (time evolution) number, and\nreturns an array or hash of parameters …\n"],["random_name_generator","NEAT","NEAT.html#method-c-random_name_generator","()",""],["ready_for_evaluation","NEAT::Evaluator","NEAT/Evaluator.html#method-i-ready_for_evaluation","(pop)","<p>This is call prior to any sequence evaluation. Here, we clean up persistent\ntracking information, etc. …\n"],["ready_for_expression!","NEAT::Critter","NEAT/Critter.html#method-i-ready_for_expression-21","()","<p>Get the Critter ready for the Expressor to express the geneotype.\n"],["recurrence","NEAT::DSL","NEAT/DSL.html#method-i-recurrence","(&block)",""],["reenable_gene!","NEAT::Evolver::CritterOp","NEAT/Evolver/CritterOp.html#method-i-reenable_gene-21","(crit)","<p>Pick a disabled gene at random and reenable it.\n"],["report","NEAT::DSL","NEAT/DSL.html#method-i-report","(&block)","<p>Report on evaluations\n"],["report","NEAT::Population","NEAT/Population.html#method-i-report","()","<p>Generate a report on the state of this population.\n"],["report_best_fit","NEAT::Population","NEAT/Population.html#method-i-report_best_fit","()","<p>Find the best fit critter\n"],["report_fitness","NEAT::Population","NEAT/Population.html#method-i-report_fitness","()","<p>report on many fitness metrics\n"],["report_fitness_species","NEAT::Population","NEAT/Population.html#method-i-report_fitness_species","()","<p>report on the best and worst species\n"],["report_worst_fit","NEAT::Population","NEAT/Population.html#method-i-report_worst_fit","()","<p>Find the worst fit critter\n"],["resolve","NEAT::Graph::DependencyResolver","NEAT/Graph/DependencyResolver.html#method-i-resolve","()","<p>Resolve dependencies, and return [dependency_list, circular_ref_node_list]\nNote that circular_ref_node_list …\n"],["resolve!","NEAT::Graph::DependencyResolver","NEAT/Graph/DependencyResolver.html#method-i-resolve-21","()","<p>Throw an exception if dependencies are found. We only return the dependency\nlist since we throw an exception …\n"],["run","NEAT::Controller","NEAT/Controller.html#method-i-run","()","<p>Run this evolution.\n"],["run_engine","NEAT::DSL","NEAT/DSL.html#method-i-run_engine","(&block)","<p>Run the engine. The block is called on each generation.\n"],["sex","NEAT::Evolver","NEAT/Evolver.html#method-i-sex","(crit1, crit2)","<p>Mate the given critters and return a baby. This is rather involved, and\nrelies heavily on the Innovation …\n"],["show","InvertedPendulum::DSL","InvertedPendulum/DSL.html#method-i-show","(cart: @cart, &block)",""],["simple_fitness_error","NEAT::DSL","NEAT/DSL.html#method-i-simple_fitness_error","(v1, v2)","<p>Helper function to do a simple fitness calculation on the basis of the sum\nof the square of the diffences …\n"],["speciate!","NEAT::Population","NEAT/Population.html#method-i-speciate-21","()","\n<pre>Group critters into species\nNote that the @species objects\nhave useful singleton methods:</pre>\n<p>@species.member? …\n"],["stimulate","NEAT::Critter::Phenotype","NEAT/Critter/Phenotype.html#method-i-stimulate","()","<p>This function is re-written by Expressor – with parameters and all. It\nreturns a “response” …\n"],["stop_on_fitness","NEAT::DSL","NEAT/DSL.html#method-i-stop_on_fitness","(&block)","<p>Stop the progression once the fitness criteria is reached for the most fit\ncritter\n"],["to_s","GraphTest","GraphTest.html#method-i-to_s","()",""],["to_s","NEAT::Critter::Genotype::Gene","NEAT/Critter/Genotype/Gene.html#method-i-to_s","()",""],["to_s","NEAT::Critter::Phenotype","NEAT/Critter/Phenotype.html#method-i-to_s","()","<p>This gives us a complete\n"],["to_s","NEAT::NeatOb","NEAT/NeatOb.html#method-i-to_s","()",""],["turn_left","Player","Player.html#method-i-turn_left","()",""],["turn_right","Player","Player.html#method-i-turn_right","()",""],["uncondition_boolean_vector","NEAT::DSL","NEAT/DSL.html#method-i-uncondition_boolean_vector","(vec, sig = :tanh)","<p>Helper function to Uncondition boolean vectors to be +1 if true, -1 if\nfalse FIXME we need a better discrimination …\n"],["update","GameTestWindow","GameTestWindow.html#method-i-update","()",""],["update","GameWindow","GameWindow.html#method-i-update","()",""],["update","InvertedPendulum::Cart","InvertedPendulum/Cart.html#method-i-update","()",""],["update","InvertedPendulum::InvPendWindow","InvertedPendulum/InvPendWindow.html#method-i-update","()",""],["update_cart","InvertedPendulum::Cart","InvertedPendulum/Cart.html#method-i-update_cart","()","<p>update the positions of all the compnents of the cart in terms of the\nrelative positional relationships …\n"],["warp","Player","Player.html#method-i-warp","(x, y)",""],["wire!","NEAT::Critter::Genotype","NEAT/Critter/Genotype.html#method-i-wire-21","()","<p>Wire up the neurons based on the genes.\n"],["worst_critter","NEAT::Population","NEAT/Population.html#method-i-worst_critter","()","<p>The “worst critter” is the critter with the highest (away from zero)\nfitness rating.\n"],["xor","DSLSetup","DSLSetup.html#method-i-xor","(*inp)","<p>Basic xor function we shall evolve a net for. Only goes true on one and\nonly one true input, false otherwise. …\n"],["xor","Object","Object.html#method-i-xor","(*inp)","\n<pre>Basic xor function we shall evolve a net for. Only goes true\non one and only one true input, false otherwise.</pre>\n"],["Gemfile","","Gemfile.html","","<p>source 'rubygems.org'\n<p>#gemspec\n<p>ruby '2.1.1'\n"],["Gemfile.lock","","Gemfile_lock.html","","<p>GEM\n\n<pre>remote: https://rubygems.org/\nspecs:\n addressable (2.3.6)\n aquarium (0.5.1)\n awesome_print (1.2.0) ...</pre>\n"],["Guardfile","","Guardfile.html","","<p># A sample Guardfile # More info at github.com/guard/guard#readme\n<p>guard 'rspec' do\n\n<pre>watch(%r{^spec/.+_spec\\.rb$}) ...</pre>\n"],["Rakefile","","Rakefile.html","","<p>require 'rubygems' require 'bundler' require\n'semver'\n<p>def s_version\n\n<pre>SemVer.find.format ...</pre>\n"],["ControllerPoint.html","","doc/ControllerPoint_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["CuteA.html","","doc/CuteA_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["CuteB.html","","doc/CuteB_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["DSL.html","","doc/DSL_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["NEAT.html","","doc/NEAT_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["BasicNeuronTypes.html","","doc/NEAT/BasicNeuronTypes_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["BiasNeuron.html","","doc/NEAT/BasicNeuronTypes/BiasNeuron_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["CosineNeuron.html","","doc/NEAT/BasicNeuronTypes/CosineNeuron_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["InputNeuron.html","","doc/NEAT/BasicNeuronTypes/InputNeuron_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["SigmoidNeuron.html","","doc/NEAT/BasicNeuronTypes/SigmoidNeuron_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["SineNeuron.html","","doc/NEAT/BasicNeuronTypes/SineNeuron_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["TanhNeuron.html","","doc/NEAT/BasicNeuronTypes/TanhNeuron_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Controller.html","","doc/NEAT/Controller_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["NeatSettings.html","","doc/NEAT/Controller/NeatSettings_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Critter.html","","doc/NEAT/Critter_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Genotype.html","","doc/NEAT/Critter/Genotype_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Gene.html","","doc/NEAT/Critter/Genotype/Gene_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Phenotype.html","","doc/NEAT/Critter/Phenotype_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["DSL.html","","doc/NEAT/DSL_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Evaluator.html","","doc/NEAT/Evaluator_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Evolver.html","","doc/NEAT/Evolver_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["CritterOp.html","","doc/NEAT/Evolver/CritterOp_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Expressor.html","","doc/NEAT/Expressor_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Graph.html","","doc/NEAT/Graph_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["DependencyResolver.html","","doc/NEAT/Graph/DependencyResolver_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["GraphException.html","","doc/NEAT/Graph/GraphException_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["NeatException.html","","doc/NEAT/NeatException_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["NeatOb.html","","doc/NEAT/NeatOb_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Neuron.html","","doc/NEAT/Neuron_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Operator.html","","doc/NEAT/Operator_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Population.html","","doc/NEAT/Population_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["Trait.html","","doc/NEAT/Trait_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["_index.html","","doc/_index_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["class_list.html","","doc/class_list_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["common.css","","doc/css/common_css.html","","<p>Override this file with custom rules\n"],["full_list.css","","doc/css/full_list_css.html","","<p>body {\n\n<pre>margin: 0;\nfont-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;\nfont-size: ...</pre>\n"],["style.css","","doc/css/style_css.html","","<p>body {\n\n<pre>padding: 0 20px;\nfont-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;\nfont-size: ...</pre>\n"],["file_list.html","","doc/file_list_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["frames.html","","doc/frames_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"></pre>\n"],["index.html","","doc/index_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["app.js","","doc/js/app_js.html","","<p>function createSourceLinks() {\n\n<pre>$('.method_details_list .source_code').\n before("<span class='showSource'>[<a ...</pre>\n"],["full_list.js","","doc/js/full_list_js.html","","<p>var inSearch = null; var searchIndex = 0; var searchCache = []; var\nsearchString = ''; var regexSearchString …\n"],["jquery.js","","doc/js/jquery_js.html","","\n<pre>! jQuery v1.7.1 jquery.com | jquery.org/license</pre>\n<p>(function(a,b){function cy(a){return\nf.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function …\n"],["method_list.html","","doc/method_list_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["top-level-namespace.html","","doc/top-level-namespace_html.html","","<p><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”\n\n<pre>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></pre>\n"],["foo.dump.log","","foo_dump_log.html","","<p>Inverted Pendulum\n<p>\n<p>{:pole=>\n"],["rubyneat.gemspec","","rubyneat_gemspec.html","","<p># Generated by jeweler # DO NOT EDIT THIS FILE DIRECTLY # Instead, edit\nJeweler::Tasks in Rakefile, and …\n"],["xordebug.log","","xordebug_log.html","","<p>“/bigoldsystem/home/trader/dev/ruby_projects/rubyneat” D,\n[2014-01-18T21:09:33.994334 #29544] …\n"],["xorsin.log","","xorsin_log.html","","<p>“/bigoldsystem/home/trader/dev/ruby_projects/rubyneat” D,\n[2014-01-18T20:17:25.337000 #26148] …\n"]]}}
|
data/rdoc/js/searcher.js
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
Searcher = function(data) {
|
|
2
|
+
this.data = data;
|
|
3
|
+
this.handlers = [];
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
Searcher.prototype = new function() {
|
|
7
|
+
// search is performed in chunks of 1000 for non-blocking user input
|
|
8
|
+
var CHUNK_SIZE = 1000;
|
|
9
|
+
// do not try to find more than 100 results
|
|
10
|
+
var MAX_RESULTS = 100;
|
|
11
|
+
var huid = 1;
|
|
12
|
+
var suid = 1;
|
|
13
|
+
var runs = 0;
|
|
14
|
+
|
|
15
|
+
this.find = function(query) {
|
|
16
|
+
var queries = splitQuery(query);
|
|
17
|
+
var regexps = buildRegexps(queries);
|
|
18
|
+
var highlighters = buildHilighters(queries);
|
|
19
|
+
var state = { from: 0, pass: 0, limit: MAX_RESULTS, n: suid++};
|
|
20
|
+
var _this = this;
|
|
21
|
+
|
|
22
|
+
this.currentSuid = state.n;
|
|
23
|
+
|
|
24
|
+
if (!query) return;
|
|
25
|
+
|
|
26
|
+
var run = function() {
|
|
27
|
+
// stop current search thread if new search started
|
|
28
|
+
if (state.n != _this.currentSuid) return;
|
|
29
|
+
|
|
30
|
+
var results =
|
|
31
|
+
performSearch(_this.data, regexps, queries, highlighters, state);
|
|
32
|
+
var hasMore = (state.limit > 0 && state.pass < 4);
|
|
33
|
+
|
|
34
|
+
triggerResults.call(_this, results, !hasMore);
|
|
35
|
+
if (hasMore) {
|
|
36
|
+
setTimeout(run, 2);
|
|
37
|
+
}
|
|
38
|
+
runs++;
|
|
39
|
+
};
|
|
40
|
+
runs = 0;
|
|
41
|
+
|
|
42
|
+
// start search thread
|
|
43
|
+
run();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* ----- Events ------ */
|
|
47
|
+
this.ready = function(fn) {
|
|
48
|
+
fn.huid = huid;
|
|
49
|
+
this.handlers.push(fn);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* ----- Utilities ------ */
|
|
53
|
+
function splitQuery(query) {
|
|
54
|
+
return jQuery.grep(query.split(/(\s+|::?|\(\)?)/), function(string) {
|
|
55
|
+
return string.match(/\S/)
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function buildRegexps(queries) {
|
|
60
|
+
return jQuery.map(queries, function(query) {
|
|
61
|
+
return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i')
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function buildHilighters(queries) {
|
|
66
|
+
return jQuery.map(queries, function(query) {
|
|
67
|
+
return jQuery.map(query.split(''), function(l, i) {
|
|
68
|
+
return '\u0001$' + (i*2+1) + '\u0002$' + (i*2+2);
|
|
69
|
+
}).join('');
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// function longMatchRegexp(index, longIndex, regexps) {
|
|
74
|
+
// for (var i = regexps.length - 1; i >= 0; i--){
|
|
75
|
+
// if (!index.match(regexps[i]) && !longIndex.match(regexps[i])) return false;
|
|
76
|
+
// };
|
|
77
|
+
// return true;
|
|
78
|
+
// }
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
/* ----- Mathchers ------ */
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
* This record matches if the index starts with queries[0] and the record
|
|
85
|
+
* matches all of the regexps
|
|
86
|
+
*/
|
|
87
|
+
function matchPassBeginning(index, longIndex, queries, regexps) {
|
|
88
|
+
if (index.indexOf(queries[0]) != 0) return false;
|
|
89
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
90
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
|
91
|
+
return false;
|
|
92
|
+
};
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
* This record matches if the longIndex starts with queries[0] and the
|
|
98
|
+
* longIndex matches all of the regexps
|
|
99
|
+
*/
|
|
100
|
+
function matchPassLongIndex(index, longIndex, queries, regexps) {
|
|
101
|
+
if (longIndex.indexOf(queries[0]) != 0) return false;
|
|
102
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
103
|
+
if (!longIndex.match(regexps[i]))
|
|
104
|
+
return false;
|
|
105
|
+
};
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/*
|
|
110
|
+
* This record matches if the index contains queries[0] and the record
|
|
111
|
+
* matches all of the regexps
|
|
112
|
+
*/
|
|
113
|
+
function matchPassContains(index, longIndex, queries, regexps) {
|
|
114
|
+
if (index.indexOf(queries[0]) == -1) return false;
|
|
115
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
116
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
|
117
|
+
return false;
|
|
118
|
+
};
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/*
|
|
123
|
+
* This record matches if regexps[0] matches the index and the record
|
|
124
|
+
* matches all of the regexps
|
|
125
|
+
*/
|
|
126
|
+
function matchPassRegexp(index, longIndex, queries, regexps) {
|
|
127
|
+
if (!index.match(regexps[0])) return false;
|
|
128
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
129
|
+
if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
|
|
130
|
+
return false;
|
|
131
|
+
};
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
/* ----- Highlighters ------ */
|
|
137
|
+
function highlightRegexp(info, queries, regexps, highlighters) {
|
|
138
|
+
var result = createResult(info);
|
|
139
|
+
for (var i=0, l = regexps.length; i < l; i++) {
|
|
140
|
+
result.title = result.title.replace(regexps[i], highlighters[i]);
|
|
141
|
+
result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
|
|
142
|
+
};
|
|
143
|
+
return result;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function hltSubstring(string, pos, length) {
|
|
147
|
+
return string.substring(0, pos) + '\u0001' + string.substring(pos, pos + length) + '\u0002' + string.substring(pos + length);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function highlightQuery(info, queries, regexps, highlighters) {
|
|
151
|
+
var result = createResult(info);
|
|
152
|
+
var pos = 0;
|
|
153
|
+
var lcTitle = result.title.toLowerCase();
|
|
154
|
+
|
|
155
|
+
pos = lcTitle.indexOf(queries[0]);
|
|
156
|
+
if (pos != -1) {
|
|
157
|
+
result.title = hltSubstring(result.title, pos, queries[0].length);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
result.namespace = result.namespace.replace(regexps[0], highlighters[0]);
|
|
161
|
+
for (var i=1, l = regexps.length; i < l; i++) {
|
|
162
|
+
result.title = result.title.replace(regexps[i], highlighters[i]);
|
|
163
|
+
result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
|
|
164
|
+
};
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function createResult(info) {
|
|
169
|
+
var result = {};
|
|
170
|
+
result.title = info[0];
|
|
171
|
+
result.namespace = info[1];
|
|
172
|
+
result.path = info[2];
|
|
173
|
+
result.params = info[3];
|
|
174
|
+
result.snippet = info[4];
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* ----- Searching ------ */
|
|
179
|
+
function performSearch(data, regexps, queries, highlighters, state) {
|
|
180
|
+
var searchIndex = data.searchIndex;
|
|
181
|
+
var longSearchIndex = data.longSearchIndex;
|
|
182
|
+
var info = data.info;
|
|
183
|
+
var result = [];
|
|
184
|
+
var i = state.from;
|
|
185
|
+
var l = searchIndex.length;
|
|
186
|
+
var togo = CHUNK_SIZE;
|
|
187
|
+
var matchFunc, hltFunc;
|
|
188
|
+
|
|
189
|
+
while (state.pass < 4 && state.limit > 0 && togo > 0) {
|
|
190
|
+
if (state.pass == 0) {
|
|
191
|
+
matchFunc = matchPassBeginning;
|
|
192
|
+
hltFunc = highlightQuery;
|
|
193
|
+
} else if (state.pass == 1) {
|
|
194
|
+
matchFunc = matchPassLongIndex;
|
|
195
|
+
hltFunc = highlightQuery;
|
|
196
|
+
} else if (state.pass == 2) {
|
|
197
|
+
matchFunc = matchPassContains;
|
|
198
|
+
hltFunc = highlightQuery;
|
|
199
|
+
} else if (state.pass == 3) {
|
|
200
|
+
matchFunc = matchPassRegexp;
|
|
201
|
+
hltFunc = highlightRegexp;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
for (; togo > 0 && i < l && state.limit > 0; i++, togo--) {
|
|
205
|
+
if (info[i].n == state.n) continue;
|
|
206
|
+
if (matchFunc(searchIndex[i], longSearchIndex[i], queries, regexps)) {
|
|
207
|
+
info[i].n = state.n;
|
|
208
|
+
result.push(hltFunc(info[i], queries, regexps, highlighters));
|
|
209
|
+
state.limit--;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
if (searchIndex.length <= i) {
|
|
213
|
+
state.pass++;
|
|
214
|
+
i = state.from = 0;
|
|
215
|
+
} else {
|
|
216
|
+
state.from = i;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return result;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function triggerResults(results, isLast) {
|
|
223
|
+
jQuery.each(this.handlers, function(i, fn) {
|
|
224
|
+
fn.call(this, results, isLast)
|
|
225
|
+
})
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|