mirror of
https://github.com/boostorg/python.git
synced 2026-01-19 16:32:16 +00:00
these changes follow. r44807 is a merge from another branch; many of those changes probably don't apply. ------------------------------------------------------------------------ r43423 | danieljames | 2008-02-27 14:22:01 -0500 (Wed, 27 Feb 2008) | 1 line Fix incorrect links to copyright of the form 'http:#www.boost.org ------------------------------------------------------------------------ r43546 | rwgk | 2008-03-08 23:30:13 -0500 (Sat, 08 Mar 2008) | 1 line map std::invalid_argument -> Python ValueError ------------------------------------------------------------------------ r43799 | grafik | 2008-03-22 18:53:35 -0400 (Sat, 22 Mar 2008) | 1 line Remove svn exec property from files that should not be executable to fix permission problems in archives. ------------------------------------------------------------------------ r43845 | dave | 2008-03-24 14:27:22 -0400 (Mon, 24 Mar 2008) | 1 line Work around vc9 bugs ------------------------------------------------------------------------ r43901 | bemandawes | 2008-03-27 22:11:13 -0400 (Thu, 27 Mar 2008) | 1 line Remove per email from Dave ------------------------------------------------------------------------ r44041 | rwgk | 2008-04-04 14:57:27 -0400 (Fri, 04 Apr 2008) | 1 line bogus VC8 warning C4180 disabled ------------------------------------------------------------------------ r44449 | djowel | 2008-04-15 23:07:06 -0400 (Tue, 15 Apr 2008) | 1 line Andreas patch ------------------------------------------------------------------------ r44450 | djowel | 2008-04-15 23:07:11 -0400 (Tue, 15 Apr 2008) | 1 line Andreas indexing suite patch ------------------------------------------------------------------------ r44807 | danieljames | 2008-04-27 03:39:49 -0400 (Sun, 27 Apr 2008) | 78 lines Merge in documentation fixes. Apart from the change to optional's documenation Jamfile, which I included by mistake. Fixes #1659, #1661, #1684, #1685, 1687, #1690, #1801 I wrote about this at: http://lists.boost.org/Archives/boost/2008/04/136405.php Merged revisions 44585-44806 via svnmerge from https://svn.boost.org/svn/boost/branches/doc ........ r44585 | danieljames | 2008-04-19 16:25:27 +0100 (Sat, 19 Apr 2008) | 2 lines Fix broken link to vacpp in bjam docs. Refs #1512 ........ r44586 | danieljames | 2008-04-19 16:27:36 +0100 (Sat, 19 Apr 2008) | 2 lines Fix broken link to bcpp in bjam docs. Refs #1513 ........ r44587 | danieljames | 2008-04-19 16:33:58 +0100 (Sat, 19 Apr 2008) | 2 lines DateTime documentation - Fix a link to the serialization library. Refs #1659 ........ r44588 | danieljames | 2008-04-19 16:35:36 +0100 (Sat, 19 Apr 2008) | 2 lines Fix some links in interprocess & intrusive. Refs #1661 ........ r44589 | danieljames | 2008-04-19 16:37:39 +0100 (Sat, 19 Apr 2008) | 2 lines Fix some links in the python docs. Refs #1684. ........ r44590 | danieljames | 2008-04-19 16:38:29 +0100 (Sat, 19 Apr 2008) | 2 lines Work around a quickbook bug which is affecting the python docs. Refs #1684. ........ r44591 | danieljames | 2008-04-19 16:39:34 +0100 (Sat, 19 Apr 2008) | 2 lines Fix a broken link in the numeric conversion docs. Refs #1685 ........ r44592 | danieljames | 2008-04-19 16:40:45 +0100 (Sat, 19 Apr 2008) | 2 lines Fix some links in the optional docs. Refs #1687 ........ r44593 | danieljames | 2008-04-19 16:42:09 +0100 (Sat, 19 Apr 2008) | 2 lines Fix link to the hash documentation from bimap. Refs #1690 ........ r44599 | danieljames | 2008-04-19 18:07:33 +0100 (Sat, 19 Apr 2008) | 2 lines Fix a typo in the format library. Refs #1801 ........ r44600 | danieljames | 2008-04-19 19:20:59 +0100 (Sat, 19 Apr 2008) | 1 line Initialise svnmerge. ........ r44641 | danieljames | 2008-04-20 18:59:47 +0100 (Sun, 20 Apr 2008) | 2 lines Fix the lincense url in shared container iterator documentation. ........ r44642 | danieljames | 2008-04-20 19:00:00 +0100 (Sun, 20 Apr 2008) | 2 lines Fix image link in the mpi documentation. ........ r44643 | danieljames | 2008-04-20 19:00:11 +0100 (Sun, 20 Apr 2008) | 2 lines Fix a typo in the spirit docs. ........ r44644 | danieljames | 2008-04-20 19:00:23 +0100 (Sun, 20 Apr 2008) | 2 lines Escape the slash so that quickbook doesn't think it the start of an italic section, and mess up the link. Refs #1844 ........ r44647 | danieljames | 2008-04-20 19:39:47 +0100 (Sun, 20 Apr 2008) | 2 lines Fix another typo in spirit docs. ........ ------------------------------------------------------------------------ r45283 | danieljames | 2008-05-11 09:49:20 -0400 (Sun, 11 May 2008) | 1 line Quote href values - our tools don't support unquoted values. ------------------------------------------------------------------------ r45359 | rwgk | 2008-05-14 15:38:08 -0400 (Wed, 14 May 2008) | 1 line braces added to resolve g++ 4.3.0 warning ------------------------------------------------------------------------ r45918 | rwgk | 2008-05-29 15:48:55 -0400 (Thu, 29 May 2008) | 66 lines See Python C++-SIG thread: "object.attr(object& attrname) proposal" Started 2008-05-25 by hohehohe2@gmail.com. Excerpts: If char const* is passed to objecjt.attr(), it uses PyObject_GetAttrStrng() or PyObject_SetAttrStrng(). If object is passed to objecjt.attr(), it takes the object as a Python string object and uses PyObject_GetAttr() or PyObject_SetAttr(). If attr() behaves like this, it can be useful when there are lots of objects which you know have the same attribute name. You can save time by first making a boost::python::object and passing it to every object's attr() inside a loop. I just made a bit of modification to boost:python locally and did a quick test, like test 1: for(int i = 0; i < n; ++i) { omain.attr(attrname) = 444; //attrname is a char const* } test 2: for(int i = 0; i < n; ++i) { object o = omain.attr(attrname); //attrname is a char const* } test 3: for(int i = 0; i < n; ++i) { omain.attr(oaaaa) = 444; //oaaaa is boost::python::object that represents a string } test 4: for(int i = 0; i < n; ++i) { object o = omain.attr(oaaaa); //oaaaa is boost::python::object that represents a string } and it reasonably reflected the difference between PyObject_*Attr() and PyObject_*AttrString. test 1 :2783ms test 2 :2357ms test 3 :1882ms test 4 :1267ms test5: PyObject_SetAttrString(po_main, "aaaa", po_num444); test6: Py_DECREF(PyObject_GetAttrString(po_main, "aaaa")); test7: PyObject_SetAttr(po_main, po_aaaa, po_num444); test8: Py_DECREF(PyObject_GetAttr(po_main, po_aaaa)); (po_ prefixed variables are PyObject*), all inside each for loop, and the results were test 5 :2410ms test 6 :2277ms test 7 :1629ms test 8 :1094ms It's boost 1.35.0, Python 2.5 on linux(gcc4.1.2). I also did the same test on windows(vs8) and the tendency was not so different. ------------------------------------------------------------------------ r45920 | rwgk | 2008-05-29 16:04:19 -0400 (Thu, 29 May 2008) | 1 line Projects using Boost.Python: PolyBoRi (text provided by Michael Brickenstein) ------------------------------------------------------------------------ r46115 | schoepflin | 2008-06-04 11:11:05 -0400 (Wed, 04 Jun 2008) | 1 line Added missing ostream header file. ------------------------------------------------------------------------ r46445 | dgregor | 2008-06-17 09:54:46 -0400 (Tue, 17 Jun 2008) | 1 line Add mime-type and eol-style properties as needed ------------------------------------------------------------------------ r46721 | dave | 2008-06-26 12:41:34 -0400 (Thu, 26 Jun 2008) | 2 lines Compatibility with Apache STDCXX library. Don't assume eh.h comes along with the other headers automatically. ------------------------------------------------------------------------ r46808 | bemandawes | 2008-06-28 09:45:21 -0400 (Sat, 28 Jun 2008) | 1 line With his kind permission, change Jaakko "J<LATIN SMALL LETTER A WITH DIARESIS>rvi" to "Jarvi" ------------------------------------------------------------------------ r46817 | djowel | 2008-06-28 14:24:17 -0400 (Sat, 28 Jun 2008) | 1 line added note on removing targets ------------------------------------------------------------------------ r46844 | dave | 2008-06-29 08:26:17 -0400 (Sun, 29 Jun 2008) | 2 lines Make valid HTML ------------------------------------------------------------------------ [SVN r47459]
467 lines
18 KiB
HTML
467 lines
18 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
|
|
<!-- Copyright David Abrahams 2006. Distributed under the Boost -->
|
|
<!-- Software License, Version 1.0. (See accompanying -->
|
|
<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Cygwin (vers 1st September 2004), see www.w3.org">
|
|
<meta http-equiv="Content-Type" content="text/html">
|
|
<link rel="stylesheet" type="text/css" href="boost.css">
|
|
|
|
<title>Boost.Python - Projects using Boost.Python</title>
|
|
</head>
|
|
|
|
<body link="#0000FF" vlink="#800080">
|
|
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary=
|
|
"header">
|
|
<tr>
|
|
<td valign="top" width="300">
|
|
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
|
|
"C++ Boost" src="../../../boost.png" border="0"></a></h3>
|
|
</td>
|
|
|
|
<td valign="top">
|
|
<h1 align="center"><a href="index.html">Boost.Python</a></h1>
|
|
|
|
<h2 align="center">Projects using Boost.Python</h2>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<hr>
|
|
|
|
<h2>Introduction</h2>
|
|
|
|
<p>This is a partial list of projects using Boost.Python. If you are using
|
|
Boost.Python as your Python/C++ binding solution, we'd be proud to list
|
|
your project on this page. Just <a href=
|
|
"mailto:c++-sig@python.org">post</a> a short description of your project
|
|
and how Boost.Python helps you get the job done, and we'll add it to this
|
|
page .</p>
|
|
<hr>
|
|
|
|
<h3>Data Analysis</h3>
|
|
|
|
<dl class="page-index">
|
|
<dt><b><a href="http://www.neuralynx.com">NeuraLab</a></b></dt>
|
|
|
|
<dd>Neuralab is a data analysis environment specifically tailored for
|
|
neural data from <a href="http://www.neuralynx.com">Neuralynx</a>
|
|
acquisition systems. Neuralab combines presentation quality graphics, a
|
|
numerical analysis library, and the <a href=
|
|
"http://www.python.org">Python</a> scripting engine in a single
|
|
application. With Neuralab, Neuralynx users can perform common analysis
|
|
tasks with just a few mouse clicks. More advanced users can create custom
|
|
Python scripts, which can optionally be assigned to menus and mouse
|
|
clicks.</dd>
|
|
</dl>
|
|
|
|
<dl class="page-index">
|
|
<dt><b>TSLib</b> - <a href="http://www.fortressinv.com">Fortress
|
|
Investment Group LLC</a></dt>
|
|
|
|
<dd>
|
|
Fortress Investment Group has contracted <a href=
|
|
"http://www.boost-consulting.com">Boost Consulting</a> to develop core
|
|
internal financial analysis tools in C++ and to prepare Python bindings
|
|
for them using Boost.Python.
|
|
|
|
<p>Tom Barket of Fortress writes:</p>
|
|
|
|
<blockquote>
|
|
We have a large C++ analytical library specialized for research in
|
|
finance and economics, built for speed and mission critical
|
|
stability. Yet Python offers us the flexibility to test out new ideas
|
|
quickly and increase the productivity of our time versus working in
|
|
C++. There are several key features which make Python stand out. Its
|
|
elegance, stability, and breadth of resources on the web are all
|
|
valuable, but the most important is its extensibility, due to its
|
|
open source transparency. Boost.Python makes Python extensibility
|
|
extremely simple and straightforward, yet preserves a great deal of
|
|
power and control.
|
|
</blockquote>
|
|
</dd>
|
|
</dl>
|
|
|
|
<h3>Educational</h3>
|
|
|
|
<dl class="page-index">
|
|
<dt><a href="http://edu.kde.org/kig"><b>Kig</b></a></dt>
|
|
|
|
<dd>
|
|
<p>KDE Interactive Geometry is a high-school level educational tool,
|
|
built for the KDE desktop. It is a nice tool to let students work with
|
|
geometrical constructions. It is meant to be the most intuitive, yet
|
|
featureful application of its kind.</p>
|
|
|
|
<p>Versions after 0.6.x (will) support objects built by the user
|
|
himself in the Python language. The exporting of the relevant internal
|
|
API's were done using Boost.Python, which made the process very
|
|
easy.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<h3>Enterprise Software</h3>
|
|
|
|
<dl class="page-index">
|
|
<dt><b><a href="http://openwbem.sourceforge.net">OpenWBEM</a></b></dt>
|
|
|
|
<dd>
|
|
The OpenWBEM project is an effort to develop an open-source
|
|
implementation of Web Based Enterprise Management suitable for
|
|
commercial and non-commercial application
|
|
|
|
<p><a href="mailto:dnuffer@sco.com">Dan Nuffer</a> writes:</p>
|
|
|
|
<blockquote>
|
|
I'm using Boost.Python to wrap the client API of OpenWBEM.This will
|
|
make it easier to do rapid prototyping, testing, and scripting when
|
|
developing management solutions that use WBEM.
|
|
</blockquote>
|
|
</dd>
|
|
|
|
<dt><b><a href="http://www.transversal.com">Metafaq</a></b></dt>
|
|
|
|
<dd>
|
|
Metafaq, from <a href="http://www.transversal.com">Transversal,
|
|
Inc.</a>, is an enterprise level online knowledge base management
|
|
system.
|
|
|
|
<p><a href="mailto:ben.young-at-transversal.com">Ben Young</a>
|
|
writes:</p>
|
|
|
|
<blockquote>
|
|
Boost.Python is used in an automated process to generate python
|
|
bindings to our api which is exposed though multiple backends and
|
|
frontends. This allows us to write quick tests and bespoke scripts to
|
|
perform one off tasks without having to go through the full
|
|
compilation cycle.
|
|
</blockquote>
|
|
</dd>
|
|
</dl>
|
|
|
|
<h3>Games</h3>
|
|
|
|
<dl>
|
|
<dt><b><a href="http://www.firaxis.com">Civilization IV</a></b></dt>
|
|
</dl>
|
|
|
|
<blockquote>
|
|
“The fourth game in the PC strategy series that has sold over five
|
|
million copies, Sid Meier's Civilization IV is a bold step forward for
|
|
the franchise, with spectacular new 3D graphics and all-new single and
|
|
multiplayer content. Civilization IV will also set a new standard for
|
|
user-modification, allowing gamers to create their own add-ons using
|
|
Python and XML.
|
|
|
|
<p>Sid Meier's Civilization IV will be released for PC in late 2005. For
|
|
more information please visit <a href=
|
|
"http://www.firaxis.com">http://www.firaxis.com</a> or write <a href=
|
|
"mailto:kgilmore@firaxis.com">kgilmore@firaxis.com</a>”</p>
|
|
</blockquote>
|
|
|
|
<p>Boost.Python is used as the interface layer between the C++ game code
|
|
and Python. Python is used for many purposes in the game, including map
|
|
generation, interface screens, game events, tools, tutorials, etc. Most
|
|
high-level game operations have been exposed to Python in order to give
|
|
modders the power they need to customize the game.</p>
|
|
|
|
<blockquote>
|
|
-Mustafa Thamer, Civ4 Lead Programmer
|
|
</blockquote>
|
|
|
|
<dl class="page-index">
|
|
<dt><b><a href="http://vegastrike.sourceforge.net">Vega
|
|
Strike</a></b></dt>
|
|
|
|
<dd>
|
|
<a href="http://vegastrike.sourceforge.net">Vega Strike</a> is the 3D
|
|
Space Simulator that allows you to trade and bounty hunt in a vast
|
|
universe. Players face dangers, decisions, piracy, and aliens.
|
|
|
|
<p><a href="http://vegastrike.sourceforge.net">Vega Strike</a> has
|
|
decided to base its scripting on python, using boost as the layer
|
|
between the class hierarchy in python and the class hierarchy in C++.
|
|
The result is a very flexible scripting system that treats units as
|
|
native python classes when designing missions or writing AI's.</p>
|
|
|
|
<p>A large economic and planetary simulation is currently being run in
|
|
the background in python and the results are returned back into C++ in
|
|
the form of various factions' spaceships appearing near worlds that
|
|
they are simulated to be near in python if the player is in the general
|
|
neighborhood.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<h3>Graphics</h3>
|
|
|
|
<dl class="page-index">
|
|
<dt><b><a href="http://sourceforge.net/projects/pyosg">OpenSceneGraph
|
|
Bindings</a></b></dt>
|
|
|
|
<dd><a href="mailto:gideon@computer.org">Gideon May</a> has created a set
|
|
of bindings for <a href=
|
|
"http://www.openscenegraph.org">OpenSceneGraph</a>, a cross-platform
|
|
C++/OpenGL library for the real-time visualization.<br>
|
|
</dd>
|
|
|
|
<dt><b><a href=
|
|
"http://www.slac.stanford.edu/grp/ek/hippodraw/index.html">HippoDraw</a></b></dt>
|
|
|
|
<dd>
|
|
HippoDraw is a data analysis environment consisting of a canvas upon
|
|
which graphs such as histograms, scattter plots, etc, are prsented. It
|
|
has a highly interactive GUI interface, but some things you need to do
|
|
with scripts. HippoDraw can be run as Python extension module so that
|
|
all the manipulation can be done from either Python or the GUI.
|
|
|
|
<p>Before the web page came online, <a href=
|
|
"mailto:Paul_Kunz@SLAC.Stanford.EDU">Paul F. Kunz</a> wrote:</p>
|
|
|
|
<blockquote>
|
|
Don't have a web page for the project, but the organization's is
|
|
<a href=
|
|
"http://www.slac.stanford.edu">http://www.slac.stanford.edu</a> (the
|
|
first web server site in America, I installed it).
|
|
</blockquote>Which was just too cool a piece of trivia to omit.<br>
|
|
|
|
</dd>
|
|
|
|
<dt><a href="http://www.iplt.org"><b>IPLT</b></a></dt>
|
|
|
|
<dd>
|
|
<a href="mailto:ansgar.philippsen-at-unibas.ch">Ansgar Philippsen</a>
|
|
writes:
|
|
|
|
<blockquote>
|
|
IPLT is an image processing library and toolbox for the structural
|
|
biology electron microscopy community. I would call it a
|
|
budding/evolving project, since it is currently not in production
|
|
stage, but rather under heavy development. Python is used as the main
|
|
scripting/interaction level, but also for rapid prototyping, since
|
|
the underlying C++ class library is pretty much fully exposed via
|
|
boost.python (at least the high-level interface). The combined power
|
|
of C++ and Python for this project turned out to be just awesome.
|
|
</blockquote><br>
|
|
|
|
</dd>
|
|
|
|
<dt><a href=
|
|
"http://www.procoders.net/pythonmagick"><b>PythonMagick</b></a></dt>
|
|
|
|
<dd>PythonMagick binds the <a href=
|
|
"http://www.graphicsmagick.org">GraphicsMagick</a> image manipulation
|
|
library to Python.<br>
|
|
</dd>
|
|
|
|
<dt><a href="http://www.vpython.org"><b>VPython</b></a></dt>
|
|
|
|
<dd>
|
|
<a href="mailto:Bruce_Sherwood-at-ncsu.edu">Bruce Sherwood</a> writes:
|
|
|
|
<blockquote>
|
|
VPython is an extension for Python that makes it easy to create
|
|
navigable 3D animations, which are generated as a side effect of
|
|
computational code. VPython is used in education for various
|
|
purposes, including teaching physics and programming, but it has also
|
|
been used by research scientists to visualize systems or data in 3D.
|
|
</blockquote><br>
|
|
|
|
</dd>
|
|
</dl>
|
|
|
|
<h3>Scientific Computing</h3>
|
|
|
|
<dl class="page index">
|
|
<dt><a href="http://camfr.sourceforge.net"><b>CAMFR</b></a></dt>
|
|
|
|
<dd>
|
|
CAMFR is a photonics and electromagnetics modelling tool. Python is
|
|
used for computational steering.
|
|
|
|
<p><a href="mailto:Peter.Bienstman@rug.ac.be">Peter Bienstman</a>
|
|
writes:</p>
|
|
|
|
<blockquote>
|
|
Thanks for providing such a great tool!
|
|
</blockquote>
|
|
</dd>
|
|
|
|
<dt><a href="http://cctbx.sourceforge.net"><b>cctbx - Computational
|
|
Crystallography Toolbox</b></a></dt>
|
|
|
|
<dd>
|
|
Computational Crystallography is concerned with the derivation of
|
|
atomic models of crystal structures, given experimental X-ray
|
|
diffraction data. The cctbx is an open-source library of fundamental
|
|
algorithms for crystallographic computations. The core algorithms are
|
|
implemented in C++ and accessed through higher-level Python interfaces.
|
|
|
|
<p>The cctbx grew together with Boost.Python and is designed from the
|
|
ground up as a hybrid Python/C++ system. With one minor exception,
|
|
run-time polymorphism is completely handled by Python. C++ compile-time
|
|
polymorphism is used to implement performance critical algorithms. The
|
|
Python and C++ layers are seamlessly integrated using Boost.Python.</p>
|
|
|
|
<p>The SourceForge cctbx project is organized in modules to facilitate
|
|
use in non-crystallographic applications. The scitbx module implements
|
|
a general purpose array family for scientific applications and pure C++
|
|
ports of FFTPACK and the L-BFGS quasi-Newton minimizer.</p>
|
|
</dd>
|
|
|
|
<dt><a href="http://www.llnl.gov/CASC/emsolve"><b>EMSolve</b></a></dt>
|
|
|
|
<dd>EMSolve is a provably stable, charge conserving, and energy
|
|
conserving solver for Maxwell's equations.<br>
|
|
</dd>
|
|
|
|
<dt><b><a href="http://cern.ch/gaudi">Gaudi</a></b> and <b><a href=
|
|
"http://cern.ch/Gaudi/RootPython/">RootPython</a></b></dt>
|
|
|
|
<dd>
|
|
Gaudi is a framework for particle physics collision data processing
|
|
applications developed in the context of the LHCb and ATLAS experiments
|
|
at CERN.
|
|
|
|
<p><a href="mailto:Pere.Mato@cern.ch">Pere Mato Vila</a> writes:</p>
|
|
|
|
<blockquote>
|
|
We are using Boost.Python to provide scripting/interactive capability
|
|
to our framework. We have a module called "GaudiPython" implemented
|
|
using Boost.Python that allows the interaction with any framework
|
|
service or algorithm from python. RootPython also uses Boost.Python
|
|
to provide a generic "gateway" between the <a href=
|
|
"http://root.cern.ch">ROOT</a> framework and python
|
|
|
|
<p>Boost.Python is great. We managed very quickly to interface our
|
|
framework to python, which is great language. We are trying to
|
|
facilitate to our physicists (end-users) a rapid analysis application
|
|
development environment based on python. For that, Boost.Python plays
|
|
and essential role.</p>
|
|
</blockquote>
|
|
</dd>
|
|
|
|
<dt><b><a href="http://www.esss.com.br">ESSS</a></b></dt>
|
|
|
|
<dd>
|
|
ESSS (Engineering Simulation and Scientific Software) is a company that
|
|
provides engineering solutions and acts in the brazilian and
|
|
south-american market providing products and services related to
|
|
Computational Fluid Dynamics and Image Analysis.
|
|
|
|
<p><a href="mailto:bruno@esss.com.br">Bruno da Silva de Oliveira</a>
|
|
writes:</p>
|
|
|
|
<blockquote>
|
|
Recently we moved our work from working exclusively with C++ to an
|
|
hybrid-language approach, using Python and C++, with Boost.Python
|
|
providing the layer between the two. The results are great so far!
|
|
</blockquote>
|
|
|
|
<p>Two projects have been developed so far with this technology:</p>
|
|
|
|
<p><b><a href=
|
|
"http://www.esss.com.br/index.php?pg=dev_projetos">Simba</a></b>
|
|
provides 3D visualization of geological formations gattered from the
|
|
simulation of the evolution of oil systems, allowing the user to
|
|
analyse various aspects of the simulation, like deformation, pressure
|
|
and fluids, along the time of the simulation.</p>
|
|
|
|
<p><b><a href=
|
|
"http://www.esss.com.br/index.php?pg=dev_projetos">Aero</a></b> aims to
|
|
construct a CFD with brazilian technology, which involves various
|
|
companies and universities. ESSS is responsible for various of the
|
|
application modules, including GUI and post-processing of results.</p>
|
|
</dd>
|
|
|
|
<dt><b><a href="http://polybori.sourceforge.net/">PolyBoRi</a></b></dt>
|
|
|
|
<dd>
|
|
<p><a href="mailto:brickenstein@mfo.de"
|
|
>Michael Brickenstein</a> writes:</p>
|
|
|
|
<blockquote>
|
|
<p>The core of PolyBoRi is a C++ library, which provides
|
|
high-level data types for Boolean polynomials and monomials,
|
|
exponent vectors, as well as for the underlying polynomial
|
|
rings and subsets of the powerset of the Boolean variables. As
|
|
a unique approach, binary decision diagrams are used as
|
|
internal storage type for polynomial structures. On top of
|
|
this C++-library we provide a Python interface. This allows
|
|
parsing of complex polynomial systems, as well as sophisticated
|
|
and extendable strategies for Gröbner basis computation.
|
|
Boost.Python has helped us to create this interface in a
|
|
very clean way.</p>
|
|
</blockquote>
|
|
</dd>
|
|
|
|
<dt><b><a href="http://www.rationaldiscovery.com">Rational Discovery
|
|
LLC</a></b></dt>
|
|
|
|
<dd>
|
|
Rational Discovery provides computational modeling, combinatorial
|
|
library design and custom software development services to the
|
|
pharmaceutical, biotech and chemical industries. We do a substantial
|
|
amount of internal research to develop new approaches for applying
|
|
machine-learning techniques to solve chemical problems. Because we're a
|
|
small organization and chemistry is a large and complex field, it is
|
|
essential that we be able to quickly and easily prototype and test new
|
|
algorithms.
|
|
|
|
<p>For our internal software, we implement core data structures in C
|
|
and expose them to Python using Boost.Python. Algorithm development is
|
|
done in Python and then translated to C if required (often it's not).
|
|
This hybrid development approach not only greatly increases our
|
|
productivity, but it also allows "non-developers" (people without C
|
|
experience) to take part in method development. Learning C is a
|
|
daunting task, but "Python fits your brain." (Thanks to Bruce Eckel for
|
|
the quote.)</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<h3>Systems Libraries</h3>
|
|
|
|
<dl>
|
|
<dt><a href="http://itamarst.org/software"><b>Fusion</b></a></dt>
|
|
|
|
<dd>
|
|
<p>Fusion is a library that supports implementing protocols in C++ for
|
|
use with Twisted, allowing control over memory allocation strategies,
|
|
fast method calls internally, etc.. Fusion supports TCP, UDP and
|
|
multicast, and is implemented using the Boost.Python python
|
|
bindings.</p>
|
|
|
|
<p>Fusion is licensed under the MIT license, and available for download
|
|
from <a href=
|
|
"http://itamarst.org/software">http://itamarst.org/software</a>.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<h3>Tools</h3>
|
|
|
|
<dl>
|
|
<dt><a href="http://www.jayacard.org"><b>Jayacard</b></a></dt>
|
|
|
|
<dd>
|
|
Jayacard aims at developing a secure portable open source operating
|
|
system for contactless smart cards and a complete suite of high quality
|
|
development tools to ease smart card OS and application development.
|
|
|
|
<p>The core of the smart card reader management is written in C++ but
|
|
all the development tools are written in the friendly Python language.
|
|
Boost plays the fundamental role of binding the tools to our core smart
|
|
card reader library.</p>
|
|
</dd>
|
|
</dl>
|
|
<hr>
|
|
|
|
<p>Revised
|
|
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
|
|
29 May, 2008</p>
|
|
|
|
<p><i>© Copyright <a href="http://www.boost.org/people/dave_abrahams.htm">Dave
|
|
Abrahams</a> 2002-2008.</i></p>
|
|
</body>
|
|
</html>
|