Commit Graph

77 Commits (f154be176fd43e45ff00fc759681c352d33d30c8)

Author SHA1 Message Date
Duy-Nguyen Ta f154be176f Major update to generate proper Cython pxd header files which could be included in other projects/modules
All cdef (class, functions, variables) declarations are moved to pxd. Implementations of those cdefs and normal Python def are in pyx.
See: http://cython.readthedocs.io/en/latest/src/userguide/sharing_declarations.html#sharing-extension-types
2016-12-16 00:23:45 -05:00
Duy-Nguyen Ta 9f58d21030 support dynamic cast from all parents/virtual base 2016-11-18 11:00:15 -05:00
Duy-Nguyen Ta 06ab94766c improve inherited method removal
Checking nontemplateMethods_ against parent's methods_ because:
1. Only nontemplateMethods_ are serialized to Cython's pxd, which doesn't like duplicate methods
2. Parent's methods_ list has every methods inherited from grand and grand-grand parents, etc., so we don't need to check higher levels.
Also refactor to reduce nested code
2016-09-12 12:38:04 -04:00
Duy-Nguyen Ta e35f0c3f50 remove inherited functions for Cython classes. Testing HessianFactor with debug info... 2016-09-12 11:05:28 -04:00
Duy-Nguyen Ta d719b9b7ae ctypedefs for all instantiated classes 2016-09-09 21:50:55 -04:00
Duy-Nguyen Ta 1e84da1cfa pyx: add constructors and fixing inheritance 2016-09-09 15:52:44 -04:00
Duy-Nguyen Ta 2d3d6d99f9 standardize function name to emit_cython_[pxd/pyx]. Remove first level namespace from Cython object names.
Examples: gtsam_Point3 --> Point3, gtsam_noiseModel_Base --> noiseModel_Base
2016-09-09 12:01:51 -04:00
Duy-Nguyen Ta 16345e4ba1 revert changes in methods_, handle template methods for Cython pxd in a less instrusive way 2016-09-09 07:49:42 -04:00
Duy-Nguyen Ta 40da298f68 emit methods to pxd, change the way template methods are handled
pxd allows template methods, whereas the current scheme instantiates/expands all template methods and add them to the same methods_ container. The new scheme treats them all separately: nontemplated methods in methods_, template methods in templateMethods_, and template methods after instantiation in expandedTemplateMethods_.
2016-09-09 07:26:11 -04:00
Duy-Nguyen Ta 6e96e095f3 remove unused function 2016-09-09 07:18:58 -04:00
Duy-Nguyen Ta ecde851d8c [inprogress] cython wrapper 2016-09-08 13:33:32 -04:00
Yao Chen d1ea1015a9 Replaced BOOSE_FOREACH with for in wrap folder. Tested the changed code locally: successful. 2016-05-20 21:41:18 -04:00
dellaert 699943d632 Changes to wrap from FixedValues branch/PR. Since unrelated to that PR and useful for OptionalJacobian wrapping in py_wrap, made this a separate PR. 2016-02-07 20:33:48 -08:00
dellaert afebf2087f Small problem w virtual 2014-12-02 14:12:22 +01:00
dellaert b8d7516e93 Successful use of ClassGrammar in Module.cpp 2014-12-02 13:12:42 +01:00
dellaert 0e48e2ff0b Moved to header 2014-12-02 12:41:35 +01:00
dellaert 8eb6393c92 Using TemplateGrammar 2014-12-01 14:35:02 +01:00
dellaert ba51b02cf0 Moving to optionals fixed template dreturn argument!
Merge branch 'qualified' into grammar_wrongtest

Conflicts:
	wrap/Class.cpp
	wrap/Function.h
	wrap/Qualified.h
	wrap/ReturnType.h
	wrap/tests/testWrap.cpp
2014-12-01 09:48:56 +01:00
dellaert 6d916c6b75 Semi-private name/namespaces 2014-11-30 20:20:13 +01:00
dellaert 14ef786dfe Removing empty in favor of boost::optional 2014-11-30 10:38:24 +01:00
dellaert c609666ab9 More informative fail 2014-11-29 16:13:23 +01:00
dellaert 6c24fc2aca Python prototype 2014-11-14 17:47:25 +01:00
dellaert 09e3c7df9f struct Constructor: public ArgumentOverloads 2014-11-13 21:34:59 +01:00
dellaert efd544527f Stream operator for many classes 2014-11-13 21:11:29 +01:00
dellaert fe481dc775 typedef to cope with abundance of strings 2014-11-13 18:58:44 +01:00
dellaert b451e97f6f New TemplateSubstitution object simplifies a lot 2014-11-13 17:28:05 +01:00
dellaert 1ea0225030 Big refactor because methods now private member of Class 2014-11-12 23:23:07 +01:00
dellaert c8ac7f8980 Cleaned up variables 2014-11-12 18:04:38 +01:00
dellaert 77935bd631 Massive edit: new Qualified type groups namespaces with name, eliminates a lot of clutter. 2014-11-12 02:49:23 +01:00
dellaert 8ab83a7cff Simplified expand 2014-11-11 22:55:36 +01:00
dellaert 26cae48338 First successful use of new ArgumentList::emit_prototype method 2014-05-25 13:02:29 -04:00
Alex Cunningham 9f9807ef19 Yet even more rebasing 2013-06-20 17:08:29 +00:00
Alex Cunningham 62d25abb1a More rebasing... 2013-06-20 17:08:28 +00:00
Alex Cunningham f299217cfb Rebasing... 2013-06-20 17:08:28 +00:00
Alex Cunningham 23de91d44d serialization works for graph and PriorFactor. Added second flag for serialization: can add "void serializable()" or "void serialize()" to allow for either just exporting (necessary if no default constructor), or implementing the full serialization functions 2013-06-19 17:50:05 +00:00
Alex Cunningham f1b1a2f7d2 Added export flags, Values now serializes 2013-06-19 17:50:03 +00:00
Alex Cunningham 14c5f205dd basic serialization works 2013-06-19 17:50:00 +00:00
Alex Cunningham 07407ff763 Completed codegen for serialize/deserialize functions 2013-06-19 17:49:59 +00:00
Alex Cunningham 8e73619989 Adding codegen components for serialization - in progress 2013-06-19 17:49:57 +00:00
Alex Cunningham c7576deb15 Added flag for serializable to parser, no codegen yet 2013-06-19 17:49:55 +00:00
Chris Beall 4297d24c96 changed tabs to spaces for consistent indentation in all of GTSAM 2012-10-02 14:40:07 +00:00
Andrew Melim d0a1e662a7 Wrap comments are now EVEN better 2012-08-28 21:44:45 +00:00
Andrew Melim ea70673b36 Added overload constructor comments to matlab files 2012-08-26 15:46:19 +00:00
Richard Roberts 87d1e0a488 Added 'This' keyword in wrap templates to substitute instantiated class 2012-07-23 21:27:36 +00:00
Alex Cunningham 656f573c0a Removed from wrap the use of "using namespace xxx" statements - wasn't fully supported before, and now we have real namespace support 2012-07-23 18:24:43 +00:00
Richard Roberts 8dbffd4629 Wrap generates Matlab namespaces, so now 'import gtsam.*' allows class names like Values, NonlinearFactor, to be used. Without import, syntax is gtsam.Values, etc. 2012-07-18 15:47:06 +00:00
Alex Cunningham 4b772b43cf Simplified include handling in wrap: no more default includes, includes are not associated with a class or a namespace. 2012-07-17 18:30:02 +00:00
Richard Roberts ce12f3d255 Code cleanup and comments 2012-07-12 22:28:28 +00:00
Richard Roberts 76e5375dea Added support for multi-argument templates that are then instantiated with typedefs in wrap interface header. 2012-07-12 02:11:29 +00:00
Richard Roberts c4f19a2b96 Can define template classes in wrap interface file with a fixed list of template argument expansions, to quickly generate many classes, e.g. template<T = {gtsam::Point2,gtsam::Point3}> class BetweenFactor ... generates gtsamBetweenFactorPoint2, gtsamBetweenFactorPoint3, etc. 2012-07-11 21:43:16 +00:00