Commit b1f7ef11 authored by scoder's avatar scoder Committed by GitHub

Merge pull request #2575 from CnlPepper/master

Added basic ctuple documentation.
parents d963bdff 6437de44
...@@ -148,6 +148,14 @@ typing and instead interpreted as C ``int``, ``long``, and ``float`` ...@@ -148,6 +148,14 @@ typing and instead interpreted as C ``int``, ``long``, and ``float``
respectively, as statically typing variables with these Python respectively, as statically typing variables with these Python
types has zero advantages. types has zero advantages.
Cython provides an accelerated and typed equivalent of a Python tuple, the ``ctuple``.
A ``ctuple`` is assembled from any valid C types. For example::
cdef (double, int) bar
They compile down to C-structures and can be used as efficient alternatives to
Python tuples.
While these C types can be vastly faster, they have C semantics. While these C types can be vastly faster, they have C semantics.
Specifically, the integer types overflow Specifically, the integer types overflow
and the C ``float`` type only has 32 bits of precision and the C ``float`` type only has 32 bits of precision
...@@ -208,6 +216,11 @@ using normal C declaration syntax. For example,:: ...@@ -208,6 +216,11 @@ using normal C declaration syntax. For example,::
cdef int eggs(unsigned long l, float f): cdef int eggs(unsigned long l, float f):
... ...
``ctuples`` may also be used::
cdef (int, float) chips((long, long, double) t):
...
When a parameter of a Python function is declared to have a C data type, it is When a parameter of a Python function is declared to have a C data type, it is
passed in as a Python object and automatically converted to a C value, if passed in as a Python object and automatically converted to a C value, if
possible. In other words, the definition of ``spam`` above is equivalent to possible. In other words, the definition of ``spam`` above is equivalent to
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment