Main Page | Modules | Alphabetical List | Compound List | File List | Compound Members | Related Pages

testCounter.cpp

00001 #include <fstream>
00002 #include <iostream>
00003 #include <iterator>
00004 #include <list>
00005 #include <vector>
00006 
00007 #include "stats.hpp"
00008 tm_stats g_counter, c_counter;
00009 
00010 #include "infinite_tape.hpp"
00011 #include "long_int.hpp"
00012 #include "state.hpp"
00013 #include "turing_machine.hpp"
00014 #include "non_halt_detection.hpp"
00015 #include "non_halt_data_structures.hpp"
00016 #include "machine_storage.hpp"
00017 #include "watch.hpp"
00018 
00019 int main()
00020 {
00021         turing_machine<unsigned short> machine(5,0);
00022 
00023         machine.set_halt_state(4);
00024 
00025         machine.add_write_transition(0,0,1,1);
00026         machine.add_move_transition(0,1, turing_machine<unsigned short>::left, 1);
00027         machine.add_move_transition(1,0, turing_machine<unsigned short>::left, 1);
00028         machine.add_move_transition(1,1, turing_machine<unsigned short>::right, 2);
00029         machine.add_move_transition(2,0, turing_machine<unsigned short>::right, 3);
00030         machine.add_write_transition(3,0,1,0);
00031         machine.add_write_transition(3,1,0,2);
00032 
00033         if(counter(machine, 1500))
00034                 std::cout << "yes" << std::endl << std::endl;
00035 
00036         turing_machine<unsigned short> machine2(6,0);
00037 
00038         machine2.set_halt_state(5);
00039 
00040         machine2.add_write_transition(0,0,1,1);
00041         machine2.add_write_transition(1,0,1,2);
00042         machine2.add_move_transition(1,1, turing_machine<unsigned short>::right, 1);
00043         machine2.add_move_transition(2,0, turing_machine<unsigned short>::left, 4);
00044         machine2.add_move_transition(2,1, turing_machine<unsigned short>::left, 3);
00045         machine2.add_write_transition(3,1,0,2);
00046         machine2.add_move_transition(4,0, turing_machine<unsigned short>::right, 0);
00047         machine2.add_write_transition(4,1,0,2);
00048 
00049         if(counter(machine2, 1500))
00050                 std::cout << "yes" << std::endl << std::endl;
00051 
00052         //machine2.printTMO(std::cout);
00053         //machine2.reverseMachine().printTMO(std::cout);
00054 
00055         turing_machine<unsigned short> machine3(6,0);
00056 
00057         machine3.set_halt_state(5);
00058 
00059         machine3.add_write_transition(0,0,1,0);
00060         machine3.add_move_transition(0,1, turing_machine<unsigned short>::right,1);
00061         machine3.add_move_transition(1,0, turing_machine<unsigned short>::right, 2);
00062         machine3.add_write_transition(2,0,1,3);
00063         machine3.add_write_transition(2,1,0,1);
00064         machine3.add_move_transition(3,0, turing_machine<unsigned short>::left, 4);
00065         machine3.add_move_transition(3,1, turing_machine<unsigned short>::left, 3);
00066         machine3.add_move_transition(4,0, turing_machine<unsigned short>::left, 4);
00067         machine3.add_move_transition(4,1, turing_machine<unsigned short>::right, 1);
00068 
00069         if(counter(machine3, 1500))
00070                 std::cout << "yes" << std::endl << std::endl;
00071 
00072         return 0;
00073 }

Generated on Thu Nov 20 00:17:32 2003 for BusyBeaver by doxygen 1.3.3