GithubHelp home page GithubHelp logo

seshat's Introduction

SESHAT: Handwritten math expression parser

Seshat is an open-source system for recognizing handwritten mathematical expressions. Given a sample represented as a sequence of strokes, the parser is able to convert it to LaTeX or other formats like InkML or MathML. You can see an example of application of this parser in

http://cat.prhlt.upv.es/mer/

where seshat is the underlying engine.

This parser has been developed by Francisco Álvaro as part of his PhD thesis while he was a member of the [PRHLT research center] 1 at [Universitat Politècnica de València] 2.

Seshat represents a state-of-the-art system that has participated in several [international competitions] 3, and it was awarded the best system trained on the competition dataset in:

  • Mouchère H., Viard-Gaudin C., Zanibbi R., Garain U. ICFHR 2014 Competition on Recognition of On-line Handwritten Mathematical Expressions (CROHME 2014). International Conference on Frontiers in Handwriting Recognition (ICFHR), Crete Island, Greece (2014)

The math expression recognition model that seshat implements is described in:

  • Francisco Álvaro, Joan-Andreu Sánchez and José-Miguel Benedí. An Integrated Grammar-based Approach for Mathematical Expression Recognition. Pattern Recognition, pp. 135-147, 2016

and it is the main part of my PhD thesis.

License

Seshat is released under the [GNU General Public License version 3.0 (GPLv3)] 5

Distribution details

Seshat is written in C++ and should work on any platform, although it has only been tested in Linux.

This software integrates the open-source [RNNLIB library] 4 for symbol classification. The code of RNNLIB has been slightly modified and directly integrated in seshat, thus, it is not necessary to download it. However, it requires the [Boost C++ Libraries] 6 (headers only).

Finally, the parser accepts input files in two formats: InkML and SCGINK. There is a example of each format in folder "SampleMathExps". Seshat uses the [Xerces-c library] 7 for parsing InkML in C++.

Installation

Seshat is written in C++ and it only requires Makefile and g++ to compile it. Once the required tools and libraries are available, you can proceed with the installation of seshat as follows:

  1. Obtain the package using git:

    $ git clone https://github.com/falvaro/seshat.git
    

    Or [download it as a zip file] 8

  2. Go to the directory containing the source code.

  3. If the include files of boost libraries are not in the path, add it to the FLAGS variable in the file Makefile ("-I/path/to/boost/").

  4. Compile seshat

    $ make

As a result, you will have the executable file "seshat" ready to recognize handwritten math expressions.

Example of usage

Run seshat without arguments and it will display the command-line interface:

$ Usage: ./seshat -c config -i input [-o output] [-r render.pgm]

  -c config: set the configuration file
  -i input:  set the input math expression file
  -o output: save recognized expression to 'output' file (InkML format)
  -r render: save in 'render' the image representing the input expression (PGM format)
  -d graph:  save in 'graph' the description of the recognized tree (DOT format)

There are two example math expressions in folder "SampleMathExps". The following command will recognize the expression (x+y)^2 encoded in "exp.scgink"

$ ./seshat -c Config/CONFIG -i SampleMathExps/exp.scgink -o out.inkml -r render.pgm -d out.dot

This command outputs several information through the standard output, where the last line will provide the LaTeX string of the recognized math expression. Furthermore:

  • An image representation of the input strokes will be rendered in "render.pgm".

  • The InkML file of the recognized math expression will be saved in "out.inkml".

  • The derivation tree of the expression provided as a graph in DOT format will be saved in "out.dot". The representation of the graph in, for example, postscript format can be obtained as follows

     	  $ dot -o out.ps out.dot -Tps
    

It should be noted that only options "-c" and "-i" are mandatory.

Citations

If you use seshat for your research, please cite the following reference:

@article{AlvaroPR16,
title = "An integrated grammar-based approach for mathematical expression recognition",
author = "Francisco \'Alvaro and Joan-Andreu S\'anchez and Jos\'e-Miguel Bened\'{\i}",
journal = "Pattern Recognition",
volume = "51",
pages = "135 - 147",
year = "2016",
issn = "0031-3203"
}

Why seshat?

Seshat was the [Goddess of writing] 9 according to Egyptian mythology, so I liked this name for a handwritten math expression parser. I found out about seshat because my colleague of the PRHLT [Daniel Ortiz-Martínez] 10 developed [Thot] 11, a great open-source toolkit for statistical machine translation; and Thot is the [God of Knowledge] 12 according to Egyptian mythology.

seshat's People

Contributors

falvaro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seshat's Issues

Missing documentation about training data

I believe that the training data is at Config/SymRec/*. However, I cannot figure out how one is supposed to improve those files. Is there any documentation about these files available?

Multiple parses in single program run

Thanks for making this library available!! I forked your code and made a couple of adjustments so that it now compiles under OSX.

I'm now trying to change the program so that it can parse multiple input stroke data instances in a single run. Ideally, I'd like to keep the program running and read continually from stdin -- posting the latex results on stdout whenever something comes in.

I think I would need to refactor the meParser class to only read the config once and clean things up after it parsed each input to avoid memory leaks. Does that sound right to you? Can you give me any pointers to how you would approach this task and what things I will need to change?

Thank you so much! Your work is awesome!

Ability to request multiple alternative hypotheses

If I'm following the implementation correctly, the code creates multiple alternative hypotheses about possible equation matches. However, the final output is the most probably hypothesis only. Are you planning to have an API that could output multiple hypotheses in probability order?

Error when build on ubuntu 14.04

Hi all,

I built seshat success on centos 6.7 (32 bit) use gcc version 4.4.7, boost 1_54_0, xerces-c-3.1.3.

Now I try to build seshat on ubuntu 14.04 (64 bit).
I use the same dependency on centos 6.7.
I installed gcc version 4.4.7. Use boost 1_54_0 and xerces-c-3.1.3.

But i face below error.

g++ -c sample.cc -O3 -Wno-unused-result -I/home/thelinh/work_space/math_ocr/tool_for_seshat/boost_1_54_0/
In file included from /usr/local/include/xercesc/util/Xerces_autoconf_config.hpp:88,
from /usr/local/include/xercesc/util/XercesDefs.hpp:46,
from /usr/local/include/xercesc/util/PlatformUtils.hpp:25,
from sample.cc:31:
/usr/include/inttypes.h:290: error: reference to ‘intmax_t’ is ambiguous
/usr/include/stdint.h:134: error: candidates are: typedef long int intmax_t
/home/thelinh/work_space/math_ocr/tool_for_seshat/boost_1_54_0/boost/cstdint.hpp:306: error: typedef boost::long_long_type boost::intmax_t
/usr/include/inttypes.h:290: error: reference to ‘intmax_t’ is ambiguous
/usr/include/stdint.h:134: error: candidates are: typedef long int intmax_t
/home/thelinh/work_space/math_ocr/tool_for_seshat/boost_1_54_0/boost/cstdint.hpp:306: error: typedef boost::long_long_type boost::intmax_t
/usr/include/inttypes.h:290: error: ‘intmax_t’ does not name a type
/usr/include/inttypes.h:293: error: reference to ‘intmax_t’ is ambiguous
/usr/include/stdint.h:134: error: candidates are: typedef long int intmax_t
/home/thelinh/work_space/math_ocr/tool_for_seshat/boost_1_54_0/boost/cstdint.hpp:306: error: typedef boost::long_long_type boost::intmax_t
/usr/include/inttypes.h:293: error: reference to ‘intmax_t’ is ambiguous
/usr/include/stdint.h:134: error: candidates are: typedef long int intmax_t
/home/thelinh/work_space/math_ocr/tool_for_seshat/boost_1_54_0/boost/cstdint.hpp:306: error: typedef boost::long_long_type boost::intmax_t
/usr/include/inttypes.h:293: error: reference to ‘intmax_t’ is ambiguous

...

Attacked file is output result when i run make.
results.txt

Please help me.

Boost path issues

Hello @falvaro

I have downloaded the boost libraries from https://dl.bintray.com/boostorg/release/1.73.0/source/ (boost_1_73_0.7z)

After that, I have set the path as "FLAGS = -O3 -Wno-unused-result -I/boost_1_73_0/boost/"

Then I try to build using make and I get a lot of errors. I have posted one error.

rnnlib4seshat/Helpers.hpp:578:54: error: cannot convert ‘std::pair<boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >, boost::iterators::zip_iterator<std::tuple<double*, double*, double*> > >’ to ‘int’ in return
boost::end(r3) - (boost::size(r3) - size))));
^
Makefile:65: recipe for target 'symfeatures.o' failed
make: *** [symfeatures.o] Error 1

What seems to be the issue in this case?

Thanks.

Compilation Error

When compiling on Ubuntu, I get the following error:

g++ -c rnnlib4seshat/WeightContainer.cpp -O3 -Wno-unused-result -I/home/rohanp/boost -I/home/rohanp/xerces/src/
rnnlib4seshat/WeightContainer.cpp:48:88: error: redeclaration of ‘template<class R> void perturb_weights(R&, real_t, bool)’ may not have default arguments [-fpermissive]
 template <class R> void perturb_weights(R& weights, real_t stdDev, bool additive = true)
                                                                                        ^
rnnlib4seshat/WeightContainer.cpp:55:85: error: redeclaration of ‘template<class R> void perturb_weights(R&, R&, bool)’ may not have default arguments [-fpermissive]
 template <class R> void perturb_weights(R& weights, R& stdDevs, bool additive = true)
                                                                                     ^

Using the -fpermissive flag does get me past this error, but then I get a million more errors in exchange

g++ -o seshat symfeatures.o featureson.o online.o sample.o stroke.o seshat.o meparser.o gparser.o grammar.o production.o symrec.o duration.o segmentation.o sparel.o gmm.o tablecyk.o cellcyk.o hypothesis.o logspace.o Random.o DataExporter.o WeightContainer.o ClassificationLayer.o Layer.o Mdrnn.o Optimiser.o -O3 -fpermissive -Wno-unused-result -I/home/rohanp/boost -I/home/rohanp/xerces/src/ -lm
sample.o: In function `Sample::loadInkML(char*)':
sample.cc:(.text+0x2afe): undefined reference to `xercesc_3_1::XMLUni::fgXercescDefaultLocale'
sample.cc:(.text+0x2b03): undefined reference to `xercesc_3_1::XMLPlatformUtils::Initialize(char const*, char const*, xercesc_3_1::PanicHandler*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b0a): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2b14): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b1b): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2b2a): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b31): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2b3b): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b42): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2b4c): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b53): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2b5d): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b64): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2b73): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b7a): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2b84): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b8b): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2b95): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2b9c): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2bab): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2bb2): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2bbc): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2bc3): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2bcd): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2bd4): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2bde): undefined reference to `xercesc_3_1::XMLString::transcode(char const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2bed): undefined reference to `xercesc_3_1::XMemory::operator new(unsigned long)'
sample.cc:(.text+0x2bf4): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2c08): undefined reference to `xercesc_3_1::XercesDOMParser::XercesDOMParser(xercesc_3_1::XMLValidator*, xercesc_3_1::MemoryManager*, xercesc_3_1::XMLGrammarPool*)'
sample.cc:(.text+0x2c12): undefined reference to `xercesc_3_1::AbstractDOMParser::setValidationScheme(xercesc_3_1::AbstractDOMParser::ValSchemes)'
sample.cc:(.text+0x2c1c): undefined reference to `xercesc_3_1::AbstractDOMParser::setDoNamespaces(bool)'
sample.cc:(.text+0x2c26): undefined reference to `xercesc_3_1::AbstractDOMParser::setDoSchema(bool)'
sample.cc:(.text+0x2c30): undefined reference to `xercesc_3_1::AbstractDOMParser::setLoadExternalDTD(bool)'
sample.cc:(.text+0x2c3d): undefined reference to `xercesc_3_1::AbstractDOMParser::parse(char const*)'
sample.cc:(.text+0x2c45): undefined reference to `xercesc_3_1::AbstractDOMParser::getDocument()'
sample.cc:(.text+0x2d51): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2d59): undefined reference to `xercesc_3_1::XMLString::transcode(unsigned short const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2d74): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2d89): undefined reference to `xercesc_3_1::XMLString::release(char**, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2de8): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2df9): undefined reference to `xercesc_3_1::XMLString::transcode(unsigned short const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2e4a): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2e54): undefined reference to `xercesc_3_1::XMLString::release(char**, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2ec8): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2ed0): undefined reference to `xercesc_3_1::XMLString::transcode(unsigned short const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2f48): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2f59): undefined reference to `xercesc_3_1::XMLString::transcode(unsigned short const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x2f86): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x2f90): undefined reference to `xercesc_3_1::XMLString::release(char**, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x3019): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x3023): undefined reference to `xercesc_3_1::XMLString::release(unsigned short**, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x3028): undefined reference to `xercesc_3_1::XMLPlatformUtils::Terminate()'
sample.cc:(.text+0x32cc): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x32d6): undefined reference to `xercesc_3_1::XMLString::release(char**, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x3323): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x332c): undefined reference to `xercesc_3_1::XMLString::transcode(unsigned short const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x33b5): undefined reference to `xercesc_3_1::XMLPlatformUtils::fgMemoryManager'
sample.cc:(.text+0x33be): undefined reference to `xercesc_3_1::XMLString::transcode(unsigned short const*, xercesc_3_1::MemoryManager*)'
sample.cc:(.text+0x33eb): undefined reference to `xercesc_3_1::XMemory::operator delete(void*)'
sample.o: In function `xercesc_3_1::DTDEntityDecl::~DTDEntityDecl()':
sample.cc:(.text._ZN11xercesc_3_113DTDEntityDeclD2Ev[_ZN11xercesc_3_113DTDEntityDeclD5Ev]+0x8): undefined reference to `xercesc_3_1::XMLEntityDecl::~XMLEntityDecl()'
sample.o: In function `xercesc_3_1::DTDEntityDecl::~DTDEntityDecl()':
sample.cc:(.text._ZN11xercesc_3_113DTDEntityDeclD0Ev[_ZN11xercesc_3_113DTDEntityDeclD5Ev]+0xc): undefined reference to `xercesc_3_1::XMLEntityDecl::~XMLEntityDecl()'
sample.cc:(.text._ZN11xercesc_3_113DTDEntityDeclD0Ev[_ZN11xercesc_3_113DTDEntityDeclD5Ev]+0x15): undefined reference to `xercesc_3_1::XMemory::operator delete(void*)'
sample.o:(.gcc_except_table+0x84): undefined reference to `typeinfo for xercesc_3_1::XMLException'
sample.o:(.rodata._ZTIN11xercesc_3_113DTDEntityDeclE[_ZTIN11xercesc_3_113DTDEntityDeclE]+0x10): undefined reference to `typeinfo for xercesc_3_1::XMLEntityDecl'
sample.o:(.rodata._ZTVN11xercesc_3_113XMLAttDefListE[_ZTVN11xercesc_3_113XMLAttDefListE]+0x20): undefined reference to `xercesc_3_1::XMLAttDefList::isSerializable() const'
sample.o:(.rodata._ZTVN11xercesc_3_113XMLAttDefListE[_ZTVN11xercesc_3_113XMLAttDefListE]+0x28): undefined reference to `xercesc_3_1::XMLAttDefList::serialize(xercesc_3_1::XSerializeEngine&)'
sample.o:(.rodata._ZTVN11xercesc_3_113XMLAttDefListE[_ZTVN11xercesc_3_113XMLAttDefListE]+0x30): undefined reference to `xercesc_3_1::XMLAttDefList::getProtoType() const'
sample.o:(.rodata._ZTVN11xercesc_3_113DTDEntityDeclE[_ZTVN11xercesc_3_113DTDEntityDeclE]+0x20): undefined reference to `xercesc_3_1::DTDEntityDecl::isSerializable() const'
sample.o:(.rodata._ZTVN11xercesc_3_113DTDEntityDeclE[_ZTVN11xercesc_3_113DTDEntityDeclE]+0x28): undefined reference to `xercesc_3_1::DTDEntityDecl::serialize(xercesc_3_1::XSerializeEngine&)'
sample.o:(.rodata._ZTVN11xercesc_3_113DTDEntityDeclE[_ZTVN11xercesc_3_113DTDEntityDeclE]+0x30): undefined reference to `xercesc_3_1::DTDEntityDecl::getProtoType() const'
collect2: error: ld returned 1 exit status

Is this error related to the -fpermissive flag? Why is it xercesc_3_1 instead of xercesc? I linked xercesc to g++ and xercesc_3_1 is not anywhere in the source code.

Help would be greatly appreciated.

xerces linking and compling error

g++ -o seshat symfeatures.o featureson.o online.o sample.o stroke.o seshat.o meparser.o gparser.o grammar.o pro
duction.o symrec.o duration.o segmentation.o sparel.o gmm.o tablecyk.o cellcyk.o hypothesis.o logspace.o Random
.o DataExporter.o WeightContainer.o ClassificationLayer.o Layer.o Mdrnn.o Optimiser.o -O3 -std=c++11 -Wno-unuse
d-result -fpermissive -I C:/BOOST_1_76_0 -I C:/xerces-c/src -I C:/xerces-c/build/src -lxerces-c -lm
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lxerces-c
collect2.exe: error: ld returned 1 exit status
make: *** [seshat] Error 1

How can I use normal image as input to get latex from seshat or how can I convert the normal image to inkml format I mean the format which seshat accepts

I have compiled it but now I am not able to use this for my used case I want to get latex code given an image but this accepts input in inkml and some other format can you help me with

if possible how can i get the latex of mathmatical expression given an image
2 if the above is not possible how can i convert my image to the inkml format so that I could use seshat for my used case
Kindly help!!

Thanks!!

compilation fails

compiling symfeatures.cc on arch linux fails:

g++ -c symfeatures.cc -O3 -Wno-unused-result In file included from /usr/include/c++/5.3.0/bits/stl_algobase.h:65:0, from /usr/include/c++/5.3.0/bits/char_traits.h:39, from /usr/include/c++/5.3.0/ios:40, from /usr/include/c++/5.3.0/ostream:38, from /usr/include/c++/5.3.0/iostream:39, from symfeatures.h:25, from symfeatures.cc:18: /usr/include/c++/5.3.0/bits/stl_iterator_base_types.h: In instantiation of 'struct std::iterator_traits<double* const>': /usr/include/boost/iterator/iterator_traits.hpp:28:74: required from 'struct boost::iterators::iterator_reference<double* const>' /usr/include/boost/iterator/zip_iterator.hpp:90:61: required from 'struct boost::iterators::detail::dereference_iterator::result<boost::iterators::detail::dereference_iterator(double* const&)>' /usr/include/boost/utility/result_of.hpp:189:8: required from 'struct boost::detail::result_of_nested_result<boost::iterators::detail::dereference_iterator, boost::iterators::detail::dereference_iterator(double* const&)>' /usr/include/boost/utility/result_of.hpp:193:8: required from 'struct boost::detail::tr1_result_of_impl<boost::iterators::detail::dereference_iterator, boost::iterators::detail::dereference_iterator(double* const&), false>' /usr/include/boost/utility/detail/result_of_iterate.hpp:27:8: required from 'struct boost::tr1_result_of<boost::iterators::detail::dereference_iterator(double* const&)>' /usr/include/boost/utility/detail/result_of_iterate.hpp:159:8: [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /usr/include/boost/iterator/zip_iterator.hpp:214:40: required from 'static reference boost::iterators::detail::converter<reference>::call(Seq) [with Seq = boost::fusion::transform_view<const boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/iterator/zip_iterator.hpp:287:25: required from 'typename boost::iterators::detail::zip_iterator_base<IteratorTuple>::type::reference boost::iterators::zip_iterator<IteratorTuple>::dereference() const [with IteratorTuple = boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>; typename boost::iterators::detail::zip_iterator_base<IteratorTuple>::type::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/iterator/iterator_facade.hpp:549:32: required from 'static typename Facade::reference boost::iterators::iterator_core_access::dereference(const Facade&) [with Facade = boost::iterators::zip_iterator<boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >; typename Facade::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/iterator/iterator_facade.hpp:655:53: required from 'boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::reference boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::operator*() const [with Derived = boost::iterators::zip_iterator<boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >; Value = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >; CategoryOrTraversal = boost::iterators::random_access_traversal_tag; Reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >; Difference = long int; boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/foreach.hpp:771:12: required from 'typename boost::foreach_detail_::foreach_reference<T, C>::type boost::foreach_detail_::deref(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*) [with T = std::pair<boost::iterators::zip_iterator<boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::zip_iterator<boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >; C = mpl_::bool_<true>; typename boost::foreach_detail_::foreach_reference<T, C>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >; boost::foreach_detail_::auto_any_t = const boost::foreach_detail_::auto_any_base&]' rnnlib4seshat/SoftmaxLayer.hpp:81:3: required from here /usr/include/c++/5.3.0/bits/stl_iterator_base_types.h:168:53: error: 'double* const' is not a class, struct, or union type typedef typename _Iterator::iterator_category iterator_category; ^ /usr/include/c++/5.3.0/bits/stl_iterator_base_types.h:169:53: error: 'double* const' is not a class, struct, or union type typedef typename _Iterator::value_type value_type; ^ /usr/include/c++/5.3.0/bits/stl_iterator_base_types.h:170:53: error: 'double* const' is not a class, struct, or union type typedef typename _Iterator::difference_type difference_type; ^ /usr/include/c++/5.3.0/bits/stl_iterator_base_types.h:171:53: error: 'double* const' is not a class, struct, or union type typedef typename _Iterator::pointer pointer; ^ /usr/include/c++/5.3.0/bits/stl_iterator_base_types.h:172:53: error: 'double* const' is not a class, struct, or union type typedef typename _Iterator::reference reference; ^ In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11:0, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp: In instantiation of 'static boost::fusion::detail::build_tuple_cons<First, Last, false>::type boost::fusion::detail::build_tuple_cons<First, Last, false>::call(const First&, const Last&) [with First = boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>; Last = boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::null_type>, boost::iterators::detail::dereference_iterator>; boost::fusion::detail::build_tuple_cons<First, Last, false>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >; typename boost::fusion::detail::build_tuple_cons<typename boost::fusion::result_of::next<Iterator>::type, Last>::type = boost::tuples::cons<Log<double>&, boost::tuples::null_type>; typename boost::fusion::result_of::value_of<First>::type = double&]': /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:43:50: required from 'static boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::type boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::call(Sequence&) [with Sequence = boost::fusion::transform_view<const boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/fusion/sequence/convert.hpp:39:25: required from 'typename boost::fusion::result_of::convert<Tag, Sequence>::type boost::fusion::convert(Sequence&) [with Tag = boost::fusion::boost_tuple_tag; Sequence = boost::fusion::transform_view<const boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; typename boost::fusion::result_of::convert<Tag, Sequence>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/iterator/zip_iterator.hpp:214:40: required from 'static reference boost::iterators::detail::converter<reference>::call(Seq) [with Seq = boost::fusion::transform_view<const boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/iterator/zip_iterator.hpp:287:25: required from 'typename boost::iterators::detail::zip_iterator_base<IteratorTuple>::type::reference boost::iterators::zip_iterator<IteratorTuple>::dereference() const [with IteratorTuple = boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>; typename boost::iterators::detail::zip_iterator_base<IteratorTuple>::type::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/iterator/iterator_facade.hpp:549:32: required from 'static typename Facade::reference boost::iterators::iterator_core_access::dereference(const Facade&) [with Facade = boost::iterators::zip_iterator<boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >; typename Facade::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/iterator/iterator_facade.hpp:655:53: required from 'boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::reference boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::operator*() const [with Derived = boost::iterators::zip_iterator<boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >; Value = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >; CategoryOrTraversal = boost::iterators::random_access_traversal_tag; Reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >; Difference = long int; boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >]' /usr/include/boost/foreach.hpp:771:12: required from 'typename boost::foreach_detail_::foreach_reference<T, C>::type boost::foreach_detail_::deref(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*) [with T = std::pair<boost::iterators::zip_iterator<boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::zip_iterator<boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >; C = mpl_::bool_<true>; typename boost::foreach_detail_::foreach_reference<T, C>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >; boost::foreach_detail_::auto_any_t = const boost::foreach_detail_::auto_any_base&]' rnnlib4seshat/SoftmaxLayer.hpp:81:3: required from here /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:53:59: error: no match for 'operator*' (operand type is 'const boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>') typename result_of::value_of<First>::type v = *f; ^ In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:14:0, from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/iterator/deref.hpp:69:5: note: candidate: template<class Iterator> typename boost::fusion::result_of::deref<Iterator>::type boost::fusion::operator*(const boost::fusion::iterator_base<Derived>&) operator*(iterator_base<Iterator> const& i) ^ /usr/include/boost/fusion/iterator/deref.hpp:69:5: note: substitution of deduced template arguments resulted in errors seen above In file included from rnnlib4seshat/Helpers.hpp:72:0, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: rnnlib4seshat/Log.hpp:169:26: note: candidate: template<class T> Log<T> operator*(Log<T>, Log<T>) template<class T> Log<T> operator *(Log<T> log1, Log<T> log2) ^ rnnlib4seshat/Log.hpp:169:26: note: template argument deduction/substitution failed: In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11:0, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:53:59: note: 'boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>' is not derived from 'Log<T>' typename result_of::value_of<First>::type v = *f; ^ /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp: In instantiation of 'static boost::fusion::detail::build_tuple_cons<First, Last, false>::type boost::fusion::detail::build_tuple_cons<First, Last, false>::call(const First&, const Last&) [with First = boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>; Last = boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::null_type>, boost::iterators::detail::dereference_iterator>; boost::fusion::detail::build_tuple_cons<First, Last, false>::type = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >; typename boost::fusion::detail::build_tuple_cons<typename boost::fusion::result_of::next<Iterator>::type, Last>::type = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> >; typename boost::fusion::result_of::value_of<First>::type = double&]': /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:43:50: required from 'static boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::type boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::call(Sequence&) [with Sequence = boost::fusion::transform_view<const boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::type = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >]' /usr/include/boost/fusion/sequence/convert.hpp:39:25: required from 'typename boost::fusion::result_of::convert<Tag, Sequence>::type boost::fusion::convert(Sequence&) [with Tag = boost::fusion::boost_tuple_tag; Sequence = boost::fusion::transform_view<const boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; typename boost::fusion::result_of::convert<Tag, Sequence>::type = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >]' /usr/include/boost/iterator/zip_iterator.hpp:214:40: required from 'static reference boost::iterators::detail::converter<reference>::call(Seq) [with Seq = boost::fusion::transform_view<const boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; reference = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >]' /usr/include/boost/iterator/zip_iterator.hpp:287:25: required from 'typename boost::iterators::detail::zip_iterator_base<IteratorTuple>::type::reference boost::iterators::zip_iterator<IteratorTuple>::dereference() const [with IteratorTuple = boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>; typename boost::iterators::detail::zip_iterator_base<IteratorTuple>::type::reference = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >]' /usr/include/boost/iterator/iterator_facade.hpp:549:32: required from 'static typename Facade::reference boost::iterators::iterator_core_access::dereference(const Facade&) [with Facade = boost::iterators::zip_iterator<boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >; typename Facade::reference = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >]' /usr/include/boost/iterator/iterator_facade.hpp:655:53: required from 'boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::reference boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::operator*() const [with Derived = boost::iterators::zip_iterator<boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >; Value = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >; CategoryOrTraversal = boost::iterators::random_access_traversal_tag; Reference = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >; Difference = long int; boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::reference = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >]' /usr/include/boost/foreach.hpp:771:12: required from 'typename boost::foreach_detail_::foreach_reference<T, C>::type boost::foreach_detail_::deref(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*) [with T = std::pair<boost::iterators::zip_iterator<boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::zip_iterator<boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >; C = mpl_::bool_<true>; typename boost::foreach_detail_::foreach_reference<T, C>::type = boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::cons<double&, boost::tuples::null_type> > >; boost::foreach_detail_::auto_any_t = const boost::foreach_detail_::auto_any_base&]' rnnlib4seshat/SoftmaxLayer.hpp:100:3: required from here /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:53:59: error: no match for 'operator*' (operand type is 'const boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, double*, double*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>') In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:14:0, from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/iterator/deref.hpp:69:5: note: candidate: template<class Iterator> typename boost::fusion::result_of::deref<Iterator>::type boost::fusion::operator*(const boost::fusion::iterator_base<Derived>&) operator*(iterator_base<Iterator> const& i) ^ /usr/include/boost/fusion/iterator/deref.hpp:69:5: note: template argument deduction/substitution failed: In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11:0, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp: In instantiation of 'static boost::fusion::detail::build_tuple_cons<First, Last, false>::type boost::fusion::detail::build_tuple_cons<First, Last, false>::call(const First&, const Last&) [with First = boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>; Last = boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::null_type>, boost::iterators::detail::dereference_iterator>; boost::fusion::detail::build_tuple_cons<First, Last, false>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >; typename boost::fusion::detail::build_tuple_cons<typename boost::fusion::result_of::next<Iterator>::type, Last>::type = boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> >; typename boost::fusion::result_of::value_of<First>::type = double&]': /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:43:50: required from 'static boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::type boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::call(Sequence&) [with Sequence = boost::fusion::transform_view<const boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; boost::fusion::extension::convert_impl<boost::fusion::boost_tuple_tag>::apply<Sequence>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >]' /usr/include/boost/fusion/sequence/convert.hpp:39:25: required from 'typename boost::fusion::result_of::convert<Tag, Sequence>::type boost::fusion::convert(Sequence&) [with Tag = boost::fusion::boost_tuple_tag; Sequence = boost::fusion::transform_view<const boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; typename boost::fusion::result_of::convert<Tag, Sequence>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >]' /usr/include/boost/iterator/zip_iterator.hpp:214:40: required from 'static reference boost::iterators::detail::converter<reference>::call(Seq) [with Seq = boost::fusion::transform_view<const boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>, boost::iterators::detail::dereference_iterator, boost::fusion::void_>; reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >]' /usr/include/boost/iterator/zip_iterator.hpp:287:25: required from 'typename boost::iterators::detail::zip_iterator_base<IteratorTuple>::type::reference boost::iterators::zip_iterator<IteratorTuple>::dereference() const [with IteratorTuple = boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type>; typename boost::iterators::detail::zip_iterator_base<IteratorTuple>::type::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >]' /usr/include/boost/iterator/iterator_facade.hpp:549:32: required from 'static typename Facade::reference boost::iterators::iterator_core_access::dereference(const Facade&) [with Facade = boost::iterators::zip_iterator<boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >; typename Facade::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >]' /usr/include/boost/iterator/iterator_facade.hpp:655:53: required from 'boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::reference boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::operator*() const [with Derived = boost::iterators::zip_iterator<boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >; Value = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >; CategoryOrTraversal = boost::iterators::random_access_traversal_tag; Reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >; Difference = long int; boost::iterators::detail::iterator_facade_base<Derived, Value, CategoryOrTraversal, Reference, Difference, false, false>::reference = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >]' /usr/include/boost/foreach.hpp:771:12: required from 'typename boost::foreach_detail_::foreach_reference<T, C>::type boost::foreach_detail_::deref(boost::foreach_detail_::auto_any_t, boost::foreach_detail_::type2type<T, C>*) [with T = std::pair<boost::iterators::zip_iterator<boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::zip_iterator<boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> > >; C = mpl_::bool_<true>; typename boost::foreach_detail_::foreach_reference<T, C>::type = boost::tuples::cons<double&, boost::tuples::cons<Log<double>&, boost::tuples::cons<Log<double>&, boost::tuples::null_type> > >; boost::foreach_detail_::auto_any_t = const boost::foreach_detail_::auto_any_base&]' rnnlib4seshat/TranscriptionLayer.hpp:248:4: required from here /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:53:59: error: no match for 'operator*' (operand type is 'const boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>') typename result_of::value_of<First>::type v = *f; ^ In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:14:0, from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/iterator/deref.hpp:69:5: note: candidate: template<class Iterator> typename boost::fusion::result_of::deref<Iterator>::type boost::fusion::operator*(const boost::fusion::iterator_base<Derived>&) operator*(iterator_base<Iterator> const& i) ^ /usr/include/boost/fusion/iterator/deref.hpp:69:5: note: template argument deduction/substitution failed: In file included from rnnlib4seshat/Helpers.hpp:72:0, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: rnnlib4seshat/Log.hpp:169:26: note: candidate: template<class T> Log<T> operator*(Log<T>, Log<T>) template<class T> Log<T> operator *(Log<T> log1, Log<T> log2) ^ rnnlib4seshat/Log.hpp:169:26: note: template argument deduction/substitution failed: In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11:0, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:53:59: note: 'boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>' is not derived from 'Log<T>' typename result_of::value_of<First>::type v = *f; ^ In file included from /usr/include/boost/detail/container_fwd.hpp:98:0, from /usr/include/boost/functional/hash/extensions.hpp:22, from /usr/include/boost/functional/hash/hash.hpp:558, from /usr/include/boost/bimap/relation/mutant_relation.hpp:29, from /usr/include/boost/bimap/detail/bimap_core.hpp:38, from /usr/include/boost/bimap/bimap.hpp:61, from /usr/include/boost/bimap.hpp:13, from rnnlib4seshat/DataSequence.hpp:47, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/c++/5.3.0/complex:404:5: note: candidate: template<class _Tp> std::complex<_Tp> std::operator*(const _Tp&, const std::complex<_Tp>&) operator*(const _Tp& __x, const complex<_Tp>& __y) ^ /usr/include/c++/5.3.0/complex:404:5: note: template argument deduction/substitution failed: In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11:0, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:53:59: note: candidate expects 2 arguments, 1 provided typename result_of::value_of<First>::type v = *f; ^ In file included from /usr/include/boost/detail/container_fwd.hpp:98:0, from /usr/include/boost/functional/hash/extensions.hpp:22, from /usr/include/boost/functional/hash/hash.hpp:558, from /usr/include/boost/bimap/relation/mutant_relation.hpp:29, from /usr/include/boost/bimap/detail/bimap_core.hpp:38, from /usr/include/boost/bimap/bimap.hpp:61, from /usr/include/boost/bimap.hpp:13, from rnnlib4seshat/DataSequence.hpp:47, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/c++/5.3.0/complex:395:5: note: candidate: template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const _Tp&) operator*(const complex<_Tp>& __x, const _Tp& __y) ^ /usr/include/c++/5.3.0/complex:395:5: note: template argument deduction/substitution failed: In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11:0, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:53:59: note: 'const boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>' is not derived from 'const std::complex<_Tp>' typename result_of::value_of<First>::type v = *f; ^ In file included from /usr/include/boost/detail/container_fwd.hpp:98:0, from /usr/include/boost/functional/hash/extensions.hpp:22, from /usr/include/boost/functional/hash/hash.hpp:558, from /usr/include/boost/bimap/relation/mutant_relation.hpp:29, from /usr/include/boost/bimap/detail/bimap_core.hpp:38, from /usr/include/boost/bimap/bimap.hpp:61, from /usr/include/boost/bimap.hpp:13, from rnnlib4seshat/DataSequence.hpp:47, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/c++/5.3.0/complex:386:5: note: candidate: template<class _Tp> std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const std::complex<_Tp>&) operator*(const complex<_Tp>& __x, const complex<_Tp>& __y) ^ /usr/include/c++/5.3.0/complex:386:5: note: template argument deduction/substitution failed: In file included from /usr/include/boost/fusion/adapted/boost_tuple/detail/convert_impl.hpp:11:0, from /usr/include/boost/fusion/adapted/boost_tuple.hpp:20, from /usr/include/boost/iterator/zip_iterator.hpp:21, from rnnlib4seshat/Helpers.hpp:50, from rnnlib4seshat/DataSequence.hpp:48, from symrec.h:30, from production.h:28, from hypothesis.h:30, from cellcyk.h:24, from tablecyk.h:26, from sample.h:27, from symfeatures.h:32, from symfeatures.cc:18: /usr/include/boost/fusion/adapted/boost_tuple/detail/build_cons.hpp:53:59: note: 'const boost::fusion::transform_view_iterator<boost::fusion::boost_tuple_iterator<const boost::tuples::tuple<double*, __gnu_cxx::__normal_iterator<Log<double>*, std::vector<Log<double>, std::allocator<Log<double> > > >, Log<double>*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >, boost::iterators::detail::dereference_iterator>' is not derived from 'const std::complex<_Tp>' typename result_of::value_of<First>::type v = *f; ^

Segmentation fault (core dumped)

I almost finish but I got a bug in run seshat
./seshat -c Config/CONFIG -i SampleMathExps/exp.scgink -o out.inkml -r render.pgm -d out.dot
Output is "Segmentation fault (core dumped)"
How can I fix it?
Thanks you.

Issues running the project

Hello! I have tried to run the project without success, even after including the boost libraries.
I see that the same issue arose on threat #28 with @Narsil forking the repository and fixing some disambiguation issues.

When I try to run their code, I still get some errors, however, precisely on the pieces of code that were updated with "::find".

Can someone help me correct this?

Thank you!

build error

make

g++ -c online.cc -O3 -Wno-unused-result -I/home/jingkun/seshat/boost_1_73_0/
g++ -c featureson.cc -O3 -Wno-unused-result -I/home/jingkun/seshat/boost_1_73_0/
g++ -c symfeatures.cc -O3 -Wno-unused-result -I/home/jingkun/seshat/boost_1_73_0/
In file included from rnnlib4seshat/Helpers.hpp:46:0,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/timer.hpp:21:98: note: #pragma message: This header is deprecated. Use the facilities in <boost/timer/timer.hpp> instead.
In file included from /home/jingkun/seshat/boost_1_73_0/boost/math/constants/constants.hpp:11:0,
from /home/jingkun/seshat/boost_1_73_0/boost/math/distributions/arcsine.hpp:35,
from /home/jingkun/seshat/boost_1_73_0/boost/math/distributions.hpp:15,
from rnnlib4seshat/Helpers.hpp:55,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/math/tools/cxx03_warn.hpp:99:75: note: #pragma message: CAUTION: One or more C++11 features were found to be unavailable
BOOST_PRAGMA_MESSAGE("CAUTION: One or more C++11 features were found to be unavailable")
^
In file included from /home/jingkun/seshat/boost_1_73_0/boost/math/constants/constants.hpp:11:0,
from /home/jingkun/seshat/boost_1_73_0/boost/math/distributions/arcsine.hpp:35,
from /home/jingkun/seshat/boost_1_73_0/boost/math/distributions.hpp:15,
from rnnlib4seshat/Helpers.hpp:55,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/math/tools/cxx03_warn.hpp:100:126: note: #pragma message: CAUTION: Compiling Boost.Math in pre-C++11 conformance modes is now deprecated and will be removed from March 2021.
st.Math in pre-C++11 conformance modes is now deprecated and will be removed from March 2021
^
/home/jingkun/seshat/boost_1_73_0/boost/math/tools/cxx03_warn.hpp:101:93: note: #pragma message: CAUTION: Define BOOST_MATH_DISABLE_DEPRECATED_03_WARNING to suppress this message.
A_MESSAGE("CAUTION: Define BOOST_MATH_DISABLE_DEPRECATED_03_WARNING to suppress this message
^
/home/jingkun/seshat/boost_1_73_0/boost/math/tools/cxx03_warn.hpp:102:92: note: #pragma message: CAUTION: This message was generated due to the define: BOOST_NO_CXX11_NOEXCEPT
MA_MESSAGE("CAUTION: This message was generated due to the define: " BOOST_MATH_CXX03_WARN_R
^
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘size_t index(const R&, const T&) [with R = std::vector<std::__cxx11::basic_string >; T = std::__cxx11::basic_string; size_t = long unsigned int]’:
rnnlib4seshat/DataSequence.hpp:81:30: required from here
rnnlib4seshat/Helpers.hpp:393:40: error: call of overloaded ‘find(const std::vector<std::__cxx11::basic_string >&, const std::__cxx11::basic_string&)’ is ambiguous
return distance(boost::begin(r), find(r, t));
^
rnnlib4seshat/Helpers.hpp:290:69: note: candidate: typename boost::range_iterator::type find(R&, const T&) [with R = const std::vector<std::__cxx11::basic_string >; T = std::__cxx11::basic_string; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string, std::vector<std::__cxx11::basic_string > >]
template <class R, class T> static typename range_iterator::type find(
^
In file included from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/predicate.hpp:23:0,
from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string.hpp:21,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/tz_db_base.hpp:24,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/tz_database.hpp:14,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/local_time.hpp:19,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time.hpp:15,
from rnnlib4seshat/Helpers.hpp:43,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/find.hpp:52:9: note: candidate: boost::iterator_range<typename boost::range_iterator::type> boost::algorithm::find(RangeT&, const FinderT&) [with RangeT = const std::vector<std::__cxx11::basic_string >; FinderT = std::__cxx11::basic_string; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string
, std::vector<std::__cxx11::basic_string > >]
find(
^
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘bool in(const R&, const T&) [with R = std::__cxx11::basic_string; T = char]’:
rnnlib4seshat/ConfigFile.hpp:48:34: required from here
rnnlib4seshat/Helpers.hpp:390:14: error: call of overloaded ‘find(const std::__cxx11::basic_string&, const char&)’ is ambiguous
return find(r, t) != boost::end(r);
^
rnnlib4seshat/Helpers.hpp:290:69: note: candidate: typename boost::range_iterator::type find(R&, const T&) [with R = const std::__cxx11::basic_string; T = char; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string >]
template <class R, class T> static typename range_iterator::type find(
^
In file included from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/predicate.hpp:23:0,
from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string.hpp:21,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/tz_db_base.hpp:24,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/tz_database.hpp:14,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/local_time.hpp:19,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time.hpp:15,
from rnnlib4seshat/Helpers.hpp:43,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/find.hpp:52:9: note: candidate: boost::iterator_range<typename boost::range_iterator::type> boost::algorithm::find(RangeT&, const FinderT&) [with RangeT = const std::__cxx11::basic_string; FinderT = char; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string >]
find(
^
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘bool in(const R&, const T&) [with R = std::set<std::__cxx11::basic_string >; T = std::__cxx11::basic_string]’:
rnnlib4seshat/ConfigFile.hpp:133:28: required from here
rnnlib4seshat/Helpers.hpp:390:14: error: call of overloaded ‘find(const std::set<std::__cxx11::basic_string >&, const std::__cxx11::basic_string&)’ is ambiguous
return find(r, t) != boost::end(r);
^
rnnlib4seshat/Helpers.hpp:290:69: note: candidate: typename boost::range_iterator::type find(R&, const T&) [with R = const std::set<std::__cxx11::basic_string >; T = std::__cxx11::basic_string; typename boost::range_iterator::type = std::_Rb_tree_const_iterator<std::__cxx11::basic_string >]
template <class R, class T> static typename range_iterator::type find(
^
In file included from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/predicate.hpp:23:0,
from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string.hpp:21,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/tz_db_base.hpp:24,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/tz_database.hpp:14,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/local_time.hpp:19,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time.hpp:15,
from rnnlib4seshat/Helpers.hpp:43,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/find.hpp:52:9: note: candidate: boost::iterator_range<typename boost::range_iterator::type> boost::algorithm::find(RangeT&, const FinderT&) [with RangeT = const std::set<std::__cxx11::basic_string >; FinderT = std::__cxx11::basic_string; typename boost::range_iterator::type = std::_Rb_tree_const_iterator<std::__cxx11::basic_string >]
find(
^
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘bool in(const R&, const T&) [with R = View; T = int]’:
rnnlib4seshat/Layer.hpp:161:5: required from here
rnnlib4seshat/Helpers.hpp:390:14: error: call of overloaded ‘find(const View&, const int&)’ is ambiguous
return find(r, t) != boost::end(r);
^
rnnlib4seshat/Helpers.hpp:290:69: note: candidate: typename boost::range_iterator::type find(R&, const T&) [with R = const View; T = int; typename boost::range_iterator::type = const long unsigned int*]
template <class R, class T> static typename range_iterator::type find(
^
In file included from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/predicate.hpp:23:0,
from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string.hpp:21,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/tz_db_base.hpp:24,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/tz_database.hpp:14,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/local_time.hpp:19,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time.hpp:15,
from rnnlib4seshat/Helpers.hpp:43,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/find.hpp:52:9: note: candidate: boost::iterator_range<typename boost::range_iterator::type> boost::algorithm::find(RangeT&, const FinderT&) [with RangeT = const View; FinderT = int; typename boost::range_iterator::type = const long unsigned int*]
find(
^
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘bool in(const R&, const T&) [with R = std::vector; T = int]’:
rnnlib4seshat/BlockLayer.hpp:69:5: required from here
rnnlib4seshat/Helpers.hpp:390:14: error: call of overloaded ‘find(const std::vector&, const int&)’ is ambiguous
return find(r, t) != boost::end(r);
^
rnnlib4seshat/Helpers.hpp:290:69: note: candidate: typename boost::range_iterator::type find(R&, const T&) [with R = const std::vector; T = int; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector >]
template <class R, class T> static typename range_iterator::type find(
^
In file included from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/predicate.hpp:23:0,
from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string.hpp:21,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/tz_db_base.hpp:24,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/tz_database.hpp:14,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/local_time.hpp:19,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time.hpp:15,
from rnnlib4seshat/Helpers.hpp:43,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/find.hpp:52:9: note: candidate: boost::iterator_range<typename boost::range_iterator::type> boost::algorithm::find(RangeT&, const FinderT&) [with RangeT = const std::vector; FinderT = int; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator<const long unsigned int*, std::vector >]
find(
^
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘int arg_max(const R&) [with R = View]’:
rnnlib4seshat/ClassificationLayer.hpp:144:39: required from here
rnnlib4seshat/Helpers.hpp:542:18: error: call of overloaded ‘distance(boost::range_detail::extract_const_iterator<View, true>::type, const double*)’ is ambiguous
return distance(boost::begin(r), max_element(boost::begin(r), boost::end(r)));
^
In file included from /home/jingkun/seshat/boost_1_73_0/boost/range/distance.hpp:18:0,
from /home/jingkun/seshat/boost_1_73_0/boost/range/functions.hpp:21,
from /home/jingkun/seshat/boost_1_73_0/boost/range/iterator_range_core.hpp:38,
from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/replace.hpp:1 ,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/date_facet.hpp:17,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/gregorian/gregorian_io.hpp:16,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/gregorian/gregorian.hpp:31,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/posix_time/time_formatters.hpp:12,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/posix_time/posix_time.hpp:24,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/local_time.hpp:11,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time.hpp:15,
from rnnlib4seshat/Helpers.hpp:43,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/iterator/distance.hpp:49:9: note: candidate: typename boost::iterators::iterator_difference::type boost::iterators::distance_adl_barrier::distance(SinglePassIterator, SinglePassIterator) [with SinglePassIterator = const double*; typename boost::iterators::iterator_difference::type = long int]
distance(SinglePassIterator first, SinglePassIterator last)
^
In file included from /usr/include/c++/5/bits/stl_algobase.h:66:0,
from /usr/include/c++/5/bits/char_traits.h:39,
from /usr/include/c++/5/ios:40,
from /usr/include/c++/5/ostream:38,
from /usr/include/c++/5/iostream:39,
from symfeatures.h:25,
from symfeatures.cc:18:
/usr/include/c++/5/bits/stl_iterator_base_funcs.h:114:5: note: candidate: typename std::iterator_traits<_Iterator>::difference_type std::distance(_InputIterator, _InputIterator) [with _InputIterator = const double*; typename std::iterator_traits<_Iterator>::difference_type = long int]
distance(_InputIterator __first, _InputIterator __last)
^
In file included from rnnlib4seshat/DataSequence.hpp:48:0,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of ‘size_t index(const R&, const T&) [with R = std::vector<std::__cxx11::basic_string >; T = char [6]; size_t = long unsigned int]’:
rnnlib4seshat/TranscriptionLayer.hpp:66:36: required from here
rnnlib4seshat/Helpers.hpp:393:40: error: call of overloaded ‘find(const std::vector<std::__cxx11::basic_string >&, const char [6])’ is ambiguous
return distance(boost::begin(r), find(r, t));
^
rnnlib4seshat/Helpers.hpp:290:69: note: candidate: typename boost::range_iterator::type find(R&, const T&) [with R = const std::vector<std::__cxx11::basic_string >; T = char [6]; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string, std::vector<std::__cxx11::basic_string > >]
template <class R, class T> static typename range_iterator::type find(
^
In file included from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/predicate.hpp:23:0,
from /home/jingkun/seshat/boost_1_73_0/boost/algorithm/string.hpp:21,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/tz_db_base.hpp:24,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/tz_database.hpp:14,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time/local_time/local_time.hpp:19,
from /home/jingkun/seshat/boost_1_73_0/boost/date_time.hpp:15,
from rnnlib4seshat/Helpers.hpp:43,
from rnnlib4seshat/DataSequence.hpp:48,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
/home/jingkun/seshat/boost_1_73_0/boost/algorithm/string/find.hpp:52:9: note: candidate: boost::iterator_range<typename boost::range_iterator::type> boost::algorithm::find(RangeT&, const FinderT&) [with RangeT = const std::vector<std::__cxx11::basic_string >; FinderT = char [6]; typename boost::range_iterator::type = __gnu_cxx::__normal_iterator<const std::__cxx11::basic_string
, std::vector<std::__cxx11::basic_string > >]
find(
^
Makefile:65: recipe for target 'symfeatures.o' failed
make: *** [symfeatures.o] Error 1

g++ -v

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu116.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1
16.04.12)

While installing I get "recipe for target sample.o failed"

I have compiled seshat on a Unix system and I get

sample.cc:31:42: fatal error: xercesc/util/PlatformUtils.hpp: No such file or directory
 #include <xercesc/util/PlatformUtils.hpp>
                                          ^
compilation terminated.
Makefile:32: recipe for target 'sample.o' failed
make: *** [sample.o] Error 1

What do I need to include to make the compilation succeed?

python wrapper of seshat

Can someone make python wrapper of seshat, It will be super easy to use this then. Like we have python wrapper of tesseract as pytesseract

Please help!!

How to train the models by myselfs dataset?

I want to know how to train the models using myself's dataset. The source code have the function to train the models? I want some introduce. Thanks. Sorry for my bad English.

make: *** [symfeatures.o] Error 4

I am trying to compile (make) under Ubuntu 16.04 but the compiler gets this error:
root@harp:/home/MATH/seshat# make g++ -c symfeatures.cc -O3 -Wno-unused-result -I/usr/include/boost g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions. Makefile:65: recipe for target 'symfeatures.o' failed make: *** [symfeatures.o] Error 4

Make issue

Running the make command I keep encountering this issue:

make: *** [Makefile:65: symfeatures.o] Error 1

Having looked through the issue tickets here I cant see any that are specific to this. Could anyone share any insight into this?

Output formats

Hello! I would like to thank you for such a wonderful project! I've got the question: is there any possibility to change output format from LaTex to infix or MathML?

Build Error - Windows

Error

In file included from rnnlib4seshat/DataSequence.hpp:48:0,
from symrec.h:30,
from production.h:28,
from hypothesis.h:30,
from cellcyk.h:24,
from tablecyk.h:26,
from sample.h:27,
from symfeatures.h:32,
from symfeatures.cc:18:
rnnlib4seshat/Helpers.hpp: In instantiation of 'int zip(R1&, R2&, R3&) [with R1 = const View; R2 = const View; R3 = const View]':
rnnlib4seshat/NeuronLayer.hpp:71:3: required from 'void NeuronLayer::feed_back(const std::vector&) [with F = Logistic]'
symfeatures.cc:218:1: required from here
rnnlib4seshat/Helpers.hpp:578:54: error: cannot convert 'std::pair<boost::iterators::zip_iterator<std::tuple<double*, double*, double*> >, boost::iterators::zip_iterator<std::tuple<double*, double*, double*> > >' to 'int' in return
boost::end(r3) - (boost::size(r3) - size))));

Tuple is ambiguous

After connecting my boost library, I get this error, along with a lot of other errors.

Scanning dependencies of target seshat_master
[  7%] Building CXX object CMakeFiles/seshat_master.dir/rnnlib4seshat/Mdrnn.cpp.obj
[ 11%] Building CXX object CMakeFiles/seshat_master.dir/rnnlib4seshat/DataExporter.cpp.obj
[ 14%] Building CXX object CMakeFiles/seshat_master.dir/rnnlib4seshat/ClassificationLayer.cpp.obj
[ 14%] Building CXX object CMakeFiles/seshat_master.dir/rnnlib4seshat/Layer.cpp.obj
In file included from D:\Downloads\seshat-master\rnnlib4seshat\MultiArray.hpp:30:0,
                 from D:\Downloads\seshat-master\rnnlib4seshat\SeqBuffer.hpp:23,
                 from D:\Downloads\seshat-master\rnnlib4seshat\Layer.hpp:48,
                 from D:\Downloads\seshat-master\rnnlib4seshat\Layer.cpp:40:
D:\Downloads\seshat-master\rnnlib4seshat\Helpers.hpp:154:15: error: reference to 'tuple' is ambiguous
 typedef const tuple<real_t&, real_t&, real_t&, real_t&>& TDDDD;
               ^~~~~
In file included from D:/Downloads/boost_1_65_1/boost_1_65_1/boost/tuple/tuple.hpp:28:0,
                 from D:/Downloads/boost_1_65_1/boost_1_65_1/boost/assign/list_of.hpp:22,
                 from D:\Downloads\seshat-master\rnnlib4seshat\Layer.hpp:43,
                 from D:\Downloads\seshat-master\rnnlib4seshat\Layer.cpp:40:
D:/Downloads/boost_1_65_1/boost_1_65_1/boost/tuple/detail/tuple_basic.hpp:81:7: note: candidates are: template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9> class boost::tuples::tuple
 class tuple;

does this mean I did not link the boost library properly? Or is there something missing? In my cmake file, I have this

SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "D:/Downloads/boost_1_65_1/boost_1_65_1")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "D:/Downloads/boost_1_65_1/boost_1_65_1/lib")

find_package(boost COMPONENTS system filesystem REQUIRED)

if(Boost_FOUND)

    message(STATUS "Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}")
    message(STATUS "Boost_LIBRARIES: ${Boost_LIBRARIES}")
    message(STATUS "Boost_VERSION: ${Boost_VERSION}")

    include_directories(${Boost_INCLUDE_DIRS})

endif()

and it does manage to find the Boost library.

also when I make from terminal, I get this error:

g++ -c online.cc -O3 -Wno-unused-result -ID:/Downloads/boost_1_65_1/boost_1_65_1
online.cc: In member function 'int stroke::F_XMIN()':
online.cc:60:12: error: 'INT_MAX' was not declared in this scope
   int xmin=INT_MAX;
            ^~~~~~~
online.cc: In member function 'int stroke::F_XMAX()':
online.cc:67:12: error: 'INT_MIN' was not declared in this scope
   int xmax=INT_MIN;
            ^~~~~~~
make: *** [online.o] Error 1

any ideas?

Build error: 'values.h' file not found

I have a build error:
make g++ -c online.cc -O3 -Wno-unused-result -I/path/to/boost/ In file included from online.cc:38: ./online.h:42:10: fatal error: 'values.h' file not found #include <values.h> ^~~~~~~~~~ 1 error generated. make: *** [online.o] Error 1

Not sure what the cause is.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.