Cython 3.1.0a1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- Cython/Build/BuildExecutable.py +169 -0
- Cython/Build/Cache.py +199 -0
- Cython/Build/Cythonize.py +250 -0
- Cython/Build/Dependencies.py +1275 -0
- Cython/Build/Distutils.py +1 -0
- Cython/Build/Inline.py +342 -0
- Cython/Build/IpythonMagic.py +560 -0
- Cython/Build/Tests/TestCyCache.py +119 -0
- Cython/Build/Tests/TestCythonizeArgsParser.py +481 -0
- Cython/Build/Tests/TestDependencies.py +133 -0
- Cython/Build/Tests/TestInline.py +112 -0
- Cython/Build/Tests/TestIpythonMagic.py +287 -0
- Cython/Build/Tests/TestRecythonize.py +212 -0
- Cython/Build/Tests/TestStripLiterals.py +155 -0
- Cython/Build/Tests/__init__.py +1 -0
- Cython/Build/__init__.py +8 -0
- Cython/CodeWriter.py +811 -0
- Cython/Compiler/AnalysedTreeTransforms.py +97 -0
- Cython/Compiler/Annotate.py +326 -0
- Cython/Compiler/AutoDocTransforms.py +314 -0
- Cython/Compiler/Buffer.py +680 -0
- Cython/Compiler/Builtin.py +862 -0
- Cython/Compiler/CmdLine.py +243 -0
- Cython/Compiler/Code.pxd +145 -0
- Cython/Compiler/Code.py +3328 -0
- Cython/Compiler/CodeGeneration.py +33 -0
- Cython/Compiler/CythonScope.py +179 -0
- Cython/Compiler/Dataclass.py +868 -0
- Cython/Compiler/DebugFlags.py +21 -0
- Cython/Compiler/Errors.py +295 -0
- Cython/Compiler/ExprNodes.py +15051 -0
- Cython/Compiler/FlowControl.pxd +97 -0
- Cython/Compiler/FlowControl.py +1438 -0
- Cython/Compiler/FusedNode.py +998 -0
- Cython/Compiler/Future.py +16 -0
- Cython/Compiler/Interpreter.py +57 -0
- Cython/Compiler/Lexicon.py +340 -0
- Cython/Compiler/LineTable.py +114 -0
- Cython/Compiler/Main.py +779 -0
- Cython/Compiler/MatchCaseNodes.py +259 -0
- Cython/Compiler/MemoryView.py +860 -0
- Cython/Compiler/ModuleNode.py +4065 -0
- Cython/Compiler/Naming.py +369 -0
- Cython/Compiler/Nodes.py +10557 -0
- Cython/Compiler/Optimize.py +5269 -0
- Cython/Compiler/Options.py +828 -0
- Cython/Compiler/ParseTreeTransforms.pxd +78 -0
- Cython/Compiler/ParseTreeTransforms.py +4441 -0
- Cython/Compiler/Parsing.pxd +9 -0
- Cython/Compiler/Parsing.py +4797 -0
- Cython/Compiler/Pipeline.py +425 -0
- Cython/Compiler/PyrexTypes.py +5572 -0
- Cython/Compiler/Pythran.py +223 -0
- Cython/Compiler/Scanning.pxd +40 -0
- Cython/Compiler/Scanning.py +574 -0
- Cython/Compiler/StringEncoding.py +347 -0
- Cython/Compiler/Symtab.py +2998 -0
- Cython/Compiler/Tests/TestBuffer.py +105 -0
- Cython/Compiler/Tests/TestBuiltin.py +72 -0
- Cython/Compiler/Tests/TestCmdLine.py +573 -0
- Cython/Compiler/Tests/TestCode.py +86 -0
- Cython/Compiler/Tests/TestFlowControl.py +65 -0
- Cython/Compiler/Tests/TestGrammar.py +202 -0
- Cython/Compiler/Tests/TestMemView.py +71 -0
- Cython/Compiler/Tests/TestParseTreeTransforms.py +285 -0
- Cython/Compiler/Tests/TestScanning.py +134 -0
- Cython/Compiler/Tests/TestSignatureMatching.py +73 -0
- Cython/Compiler/Tests/TestStringEncoding.py +33 -0
- Cython/Compiler/Tests/TestTreeFragment.py +63 -0
- Cython/Compiler/Tests/TestTreePath.py +93 -0
- Cython/Compiler/Tests/TestTypes.py +75 -0
- Cython/Compiler/Tests/TestUtilityLoad.py +112 -0
- Cython/Compiler/Tests/TestVisitor.py +61 -0
- Cython/Compiler/Tests/Utils.py +36 -0
- Cython/Compiler/Tests/__init__.py +1 -0
- Cython/Compiler/TreeFragment.py +278 -0
- Cython/Compiler/TreePath.py +290 -0
- Cython/Compiler/TypeInference.py +584 -0
- Cython/Compiler/TypeSlots.py +1181 -0
- Cython/Compiler/UFuncs.py +311 -0
- Cython/Compiler/UtilNodes.py +387 -0
- Cython/Compiler/UtilityCode.py +274 -0
- Cython/Compiler/Version.py +8 -0
- Cython/Compiler/Visitor.pxd +53 -0
- Cython/Compiler/Visitor.py +861 -0
- Cython/Compiler/__init__.py +1 -0
- Cython/Coverage.py +443 -0
- Cython/Debugger/Cygdb.py +179 -0
- Cython/Debugger/DebugWriter.py +82 -0
- Cython/Debugger/Tests/TestLibCython.py +275 -0
- Cython/Debugger/Tests/__init__.py +1 -0
- Cython/Debugger/Tests/cfuncs.c +8 -0
- Cython/Debugger/Tests/codefile +49 -0
- Cython/Debugger/Tests/test_libcython_in_gdb.py +578 -0
- Cython/Debugger/Tests/test_libpython_in_gdb.py +90 -0
- Cython/Debugger/__init__.py +1 -0
- Cython/Debugger/libcython.py +1549 -0
- Cython/Debugger/libpython.py +2821 -0
- Cython/Debugging.py +20 -0
- Cython/Distutils/__init__.py +2 -0
- Cython/Distutils/build_ext.py +137 -0
- Cython/Distutils/extension.py +96 -0
- Cython/Distutils/old_build_ext.py +351 -0
- Cython/Includes/cpython/__init__.pxd +173 -0
- Cython/Includes/cpython/array.pxd +174 -0
- Cython/Includes/cpython/bool.pxd +37 -0
- Cython/Includes/cpython/buffer.pxd +112 -0
- Cython/Includes/cpython/bytearray.pxd +33 -0
- Cython/Includes/cpython/bytes.pxd +200 -0
- Cython/Includes/cpython/cellobject.pxd +35 -0
- Cython/Includes/cpython/ceval.pxd +8 -0
- Cython/Includes/cpython/codecs.pxd +121 -0
- Cython/Includes/cpython/complex.pxd +55 -0
- Cython/Includes/cpython/contextvars.pxd +141 -0
- Cython/Includes/cpython/conversion.pxd +36 -0
- Cython/Includes/cpython/datetime.pxd +384 -0
- Cython/Includes/cpython/descr.pxd +26 -0
- Cython/Includes/cpython/dict.pxd +187 -0
- Cython/Includes/cpython/exc.pxd +263 -0
- Cython/Includes/cpython/fileobject.pxd +57 -0
- Cython/Includes/cpython/float.pxd +47 -0
- Cython/Includes/cpython/function.pxd +65 -0
- Cython/Includes/cpython/genobject.pxd +25 -0
- Cython/Includes/cpython/getargs.pxd +12 -0
- Cython/Includes/cpython/instance.pxd +25 -0
- Cython/Includes/cpython/iterator.pxd +36 -0
- Cython/Includes/cpython/iterobject.pxd +24 -0
- Cython/Includes/cpython/list.pxd +92 -0
- Cython/Includes/cpython/long.pxd +149 -0
- Cython/Includes/cpython/longintrepr.pxd +19 -0
- Cython/Includes/cpython/mapping.pxd +63 -0
- Cython/Includes/cpython/marshal.pxd +66 -0
- Cython/Includes/cpython/mem.pxd +120 -0
- Cython/Includes/cpython/memoryview.pxd +50 -0
- Cython/Includes/cpython/method.pxd +49 -0
- Cython/Includes/cpython/module.pxd +208 -0
- Cython/Includes/cpython/number.pxd +258 -0
- Cython/Includes/cpython/object.pxd +433 -0
- Cython/Includes/cpython/pycapsule.pxd +143 -0
- Cython/Includes/cpython/pylifecycle.pxd +68 -0
- Cython/Includes/cpython/pyport.pxd +8 -0
- Cython/Includes/cpython/pystate.pxd +95 -0
- Cython/Includes/cpython/pythread.pxd +53 -0
- Cython/Includes/cpython/ref.pxd +67 -0
- Cython/Includes/cpython/sequence.pxd +134 -0
- Cython/Includes/cpython/set.pxd +119 -0
- Cython/Includes/cpython/slice.pxd +70 -0
- Cython/Includes/cpython/time.pxd +129 -0
- Cython/Includes/cpython/tuple.pxd +72 -0
- Cython/Includes/cpython/type.pxd +53 -0
- Cython/Includes/cpython/unicode.pxd +639 -0
- Cython/Includes/cpython/version.pxd +32 -0
- Cython/Includes/cpython/weakref.pxd +42 -0
- Cython/Includes/libc/__init__.pxd +1 -0
- Cython/Includes/libc/complex.pxd +35 -0
- Cython/Includes/libc/errno.pxd +127 -0
- Cython/Includes/libc/float.pxd +43 -0
- Cython/Includes/libc/limits.pxd +28 -0
- Cython/Includes/libc/locale.pxd +46 -0
- Cython/Includes/libc/math.pxd +209 -0
- Cython/Includes/libc/setjmp.pxd +10 -0
- Cython/Includes/libc/signal.pxd +64 -0
- Cython/Includes/libc/stddef.pxd +9 -0
- Cython/Includes/libc/stdint.pxd +105 -0
- Cython/Includes/libc/stdio.pxd +80 -0
- Cython/Includes/libc/stdlib.pxd +72 -0
- Cython/Includes/libc/string.pxd +50 -0
- Cython/Includes/libc/time.pxd +47 -0
- Cython/Includes/libcpp/__init__.pxd +4 -0
- Cython/Includes/libcpp/algorithm.pxd +320 -0
- Cython/Includes/libcpp/any.pxd +16 -0
- Cython/Includes/libcpp/atomic.pxd +59 -0
- Cython/Includes/libcpp/bit.pxd +29 -0
- Cython/Includes/libcpp/cast.pxd +12 -0
- Cython/Includes/libcpp/cmath.pxd +518 -0
- Cython/Includes/libcpp/complex.pxd +106 -0
- Cython/Includes/libcpp/deque.pxd +165 -0
- Cython/Includes/libcpp/execution.pxd +15 -0
- Cython/Includes/libcpp/forward_list.pxd +63 -0
- Cython/Includes/libcpp/functional.pxd +26 -0
- Cython/Includes/libcpp/iterator.pxd +34 -0
- Cython/Includes/libcpp/limits.pxd +61 -0
- Cython/Includes/libcpp/list.pxd +117 -0
- Cython/Includes/libcpp/map.pxd +252 -0
- Cython/Includes/libcpp/memory.pxd +115 -0
- Cython/Includes/libcpp/numbers.pxd +15 -0
- Cython/Includes/libcpp/numeric.pxd +131 -0
- Cython/Includes/libcpp/optional.pxd +34 -0
- Cython/Includes/libcpp/pair.pxd +1 -0
- Cython/Includes/libcpp/queue.pxd +25 -0
- Cython/Includes/libcpp/random.pxd +166 -0
- Cython/Includes/libcpp/set.pxd +228 -0
- Cython/Includes/libcpp/stack.pxd +11 -0
- Cython/Includes/libcpp/string.pxd +333 -0
- Cython/Includes/libcpp/typeindex.pxd +15 -0
- Cython/Includes/libcpp/typeinfo.pxd +10 -0
- Cython/Includes/libcpp/unordered_map.pxd +193 -0
- Cython/Includes/libcpp/unordered_set.pxd +152 -0
- Cython/Includes/libcpp/utility.pxd +30 -0
- Cython/Includes/libcpp/vector.pxd +167 -0
- Cython/Includes/openmp.pxd +50 -0
- Cython/Includes/posix/__init__.pxd +1 -0
- Cython/Includes/posix/dlfcn.pxd +14 -0
- Cython/Includes/posix/fcntl.pxd +86 -0
- Cython/Includes/posix/ioctl.pxd +4 -0
- Cython/Includes/posix/mman.pxd +101 -0
- Cython/Includes/posix/resource.pxd +57 -0
- Cython/Includes/posix/select.pxd +21 -0
- Cython/Includes/posix/signal.pxd +73 -0
- Cython/Includes/posix/stat.pxd +98 -0
- Cython/Includes/posix/stdio.pxd +37 -0
- Cython/Includes/posix/stdlib.pxd +29 -0
- Cython/Includes/posix/strings.pxd +9 -0
- Cython/Includes/posix/time.pxd +71 -0
- Cython/Includes/posix/types.pxd +30 -0
- Cython/Includes/posix/uio.pxd +26 -0
- Cython/Includes/posix/unistd.pxd +271 -0
- Cython/Includes/posix/wait.pxd +38 -0
- Cython/Plex/Actions.pxd +24 -0
- Cython/Plex/Actions.py +119 -0
- Cython/Plex/DFA.pxd +14 -0
- Cython/Plex/DFA.py +164 -0
- Cython/Plex/Errors.py +48 -0
- Cython/Plex/Lexicons.py +178 -0
- Cython/Plex/Machines.pxd +36 -0
- Cython/Plex/Machines.py +238 -0
- Cython/Plex/Regexps.py +539 -0
- Cython/Plex/Scanners.pxd +47 -0
- Cython/Plex/Scanners.py +360 -0
- Cython/Plex/Transitions.pxd +14 -0
- Cython/Plex/Transitions.py +239 -0
- Cython/Plex/__init__.py +34 -0
- Cython/Runtime/__init__.py +1 -0
- Cython/Runtime/refnanny.pyx +261 -0
- Cython/Shadow.py +656 -0
- Cython/Shadow.pyi +521 -0
- Cython/StringIOTree.py +170 -0
- Cython/Tempita/__init__.py +4 -0
- Cython/Tempita/_looper.py +154 -0
- Cython/Tempita/_tempita.py +1091 -0
- Cython/TestUtils.py +417 -0
- Cython/Tests/TestCodeWriter.py +128 -0
- Cython/Tests/TestCythonUtils.py +202 -0
- Cython/Tests/TestJediTyper.py +223 -0
- Cython/Tests/TestShadow.py +114 -0
- Cython/Tests/TestStringIOTree.py +67 -0
- Cython/Tests/TestTestUtils.py +90 -0
- Cython/Tests/__init__.py +1 -0
- Cython/Tests/xmlrunner.py +390 -0
- Cython/Utility/AsyncGen.c +1263 -0
- Cython/Utility/Buffer.c +875 -0
- Cython/Utility/Builtins.c +660 -0
- Cython/Utility/CConvert.pyx +134 -0
- Cython/Utility/CMath.c +95 -0
- Cython/Utility/CommonStructures.c +139 -0
- Cython/Utility/Complex.c +378 -0
- Cython/Utility/Coroutine.c +2413 -0
- Cython/Utility/CpdefEnums.pyx +108 -0
- Cython/Utility/CppConvert.pyx +279 -0
- Cython/Utility/CppSupport.cpp +133 -0
- Cython/Utility/CythonFunction.c +1851 -0
- Cython/Utility/Dataclasses.c +185 -0
- Cython/Utility/Dataclasses.py +112 -0
- Cython/Utility/Embed.c +125 -0
- Cython/Utility/Exceptions.c +1017 -0
- Cython/Utility/ExtensionTypes.c +797 -0
- Cython/Utility/FunctionArguments.c +573 -0
- Cython/Utility/ImportExport.c +912 -0
- Cython/Utility/MemoryView.pyx +1478 -0
- Cython/Utility/MemoryView_C.c +992 -0
- Cython/Utility/ModuleSetupCode.c +2501 -0
- Cython/Utility/NumpyImportArray.c +46 -0
- Cython/Utility/ObjectHandling.c +3054 -0
- Cython/Utility/Optimize.c +1533 -0
- Cython/Utility/Overflow.c +404 -0
- Cython/Utility/Printing.c +86 -0
- Cython/Utility/Profile.c +660 -0
- Cython/Utility/StringTools.c +1206 -0
- Cython/Utility/TestCyUtilityLoader.pyx +8 -0
- Cython/Utility/TestCythonScope.pyx +75 -0
- Cython/Utility/TestUtilityLoader.c +12 -0
- Cython/Utility/TypeConversion.c +1329 -0
- Cython/Utility/UFuncs.pyx +50 -0
- Cython/Utility/UFuncs_C.c +89 -0
- Cython/Utility/__init__.py +28 -0
- Cython/Utility/arrayarray.h +143 -0
- Cython/Utils.py +687 -0
- Cython/__init__.py +10 -0
- Cython/__init__.pyi +7 -0
- Cython/py.typed +0 -0
- Cython-3.1.0a1.dist-info/COPYING.txt +19 -0
- Cython-3.1.0a1.dist-info/LICENSE.txt +176 -0
- Cython-3.1.0a1.dist-info/METADATA +67 -0
- Cython-3.1.0a1.dist-info/RECORD +301 -0
- Cython-3.1.0a1.dist-info/WHEEL +5 -0
- Cython-3.1.0a1.dist-info/entry_points.txt +4 -0
- Cython-3.1.0a1.dist-info/top_level.txt +3 -0
- cython.py +29 -0
- pyximport/__init__.py +4 -0
- pyximport/pyxbuild.py +160 -0
- pyximport/pyximport.py +482 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
from .utility cimport pair
|
|
2
|
+
|
|
3
|
+
cdef extern from "<map>" namespace "std" nogil:
|
|
4
|
+
cdef cppclass map[T, U, COMPARE=*, ALLOCATOR=*]:
|
|
5
|
+
ctypedef T key_type
|
|
6
|
+
ctypedef U mapped_type
|
|
7
|
+
ctypedef pair[const T, U] value_type
|
|
8
|
+
ctypedef COMPARE key_compare
|
|
9
|
+
ctypedef ALLOCATOR allocator_type
|
|
10
|
+
|
|
11
|
+
# these should really be allocator_type.size_type and
|
|
12
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
13
|
+
# but cython doesn't support deferred access on template arguments
|
|
14
|
+
ctypedef size_t size_type
|
|
15
|
+
ctypedef ptrdiff_t difference_type
|
|
16
|
+
|
|
17
|
+
cppclass const_iterator
|
|
18
|
+
cppclass iterator:
|
|
19
|
+
iterator() except +
|
|
20
|
+
iterator(iterator&) except +
|
|
21
|
+
# correct would be value_type& but this does not work
|
|
22
|
+
# well with cython's code gen
|
|
23
|
+
pair[T, U]& operator*()
|
|
24
|
+
iterator operator++()
|
|
25
|
+
iterator operator--()
|
|
26
|
+
iterator operator++(int)
|
|
27
|
+
iterator operator--(int)
|
|
28
|
+
bint operator==(iterator)
|
|
29
|
+
bint operator==(const_iterator)
|
|
30
|
+
bint operator!=(iterator)
|
|
31
|
+
bint operator!=(const_iterator)
|
|
32
|
+
cppclass const_iterator:
|
|
33
|
+
const_iterator() except +
|
|
34
|
+
const_iterator(iterator&) except +
|
|
35
|
+
const_iterator(const_iterator&) except +
|
|
36
|
+
operator=(iterator&) except +
|
|
37
|
+
# correct would be const value_type& but this does not work
|
|
38
|
+
# well with cython's code gen
|
|
39
|
+
const pair[T, U]& operator*()
|
|
40
|
+
const_iterator operator++()
|
|
41
|
+
const_iterator operator--()
|
|
42
|
+
const_iterator operator++(int)
|
|
43
|
+
const_iterator operator--(int)
|
|
44
|
+
bint operator==(iterator)
|
|
45
|
+
bint operator==(const_iterator)
|
|
46
|
+
bint operator!=(iterator)
|
|
47
|
+
bint operator!=(const_iterator)
|
|
48
|
+
|
|
49
|
+
cppclass const_reverse_iterator
|
|
50
|
+
cppclass reverse_iterator:
|
|
51
|
+
reverse_iterator() except +
|
|
52
|
+
reverse_iterator(reverse_iterator&) except +
|
|
53
|
+
# correct would be value_type& but this does not work
|
|
54
|
+
# well with cython's code gen
|
|
55
|
+
pair[T, U]& operator*()
|
|
56
|
+
reverse_iterator operator++()
|
|
57
|
+
reverse_iterator operator--()
|
|
58
|
+
reverse_iterator operator++(int)
|
|
59
|
+
reverse_iterator operator--(int)
|
|
60
|
+
bint operator==(reverse_iterator)
|
|
61
|
+
bint operator==(const_reverse_iterator)
|
|
62
|
+
bint operator!=(reverse_iterator)
|
|
63
|
+
bint operator!=(const_reverse_iterator)
|
|
64
|
+
cppclass const_reverse_iterator:
|
|
65
|
+
const_reverse_iterator() except +
|
|
66
|
+
const_reverse_iterator(reverse_iterator&) except +
|
|
67
|
+
operator=(reverse_iterator&) except +
|
|
68
|
+
# correct would be const value_type& but this does not work
|
|
69
|
+
# well with cython's code gen
|
|
70
|
+
const pair[T, U]& operator*()
|
|
71
|
+
const_reverse_iterator operator++()
|
|
72
|
+
const_reverse_iterator operator--()
|
|
73
|
+
const_reverse_iterator operator++(int)
|
|
74
|
+
const_reverse_iterator operator--(int)
|
|
75
|
+
bint operator==(reverse_iterator)
|
|
76
|
+
bint operator==(const_reverse_iterator)
|
|
77
|
+
bint operator!=(reverse_iterator)
|
|
78
|
+
bint operator!=(const_reverse_iterator)
|
|
79
|
+
|
|
80
|
+
map() except +
|
|
81
|
+
map(map&) except +
|
|
82
|
+
#map(key_compare&)
|
|
83
|
+
U& operator[](const T&)
|
|
84
|
+
#map& operator=(map&)
|
|
85
|
+
bint operator==(map&, map&)
|
|
86
|
+
bint operator!=(map&, map&)
|
|
87
|
+
bint operator<(map&, map&)
|
|
88
|
+
bint operator>(map&, map&)
|
|
89
|
+
bint operator<=(map&, map&)
|
|
90
|
+
bint operator>=(map&, map&)
|
|
91
|
+
U& at(const T&) except +
|
|
92
|
+
const U& const_at "at"(const T&) except +
|
|
93
|
+
iterator begin()
|
|
94
|
+
const_iterator const_begin "begin" ()
|
|
95
|
+
const_iterator cbegin()
|
|
96
|
+
void clear()
|
|
97
|
+
size_t count(const T&)
|
|
98
|
+
bint empty()
|
|
99
|
+
iterator end()
|
|
100
|
+
const_iterator const_end "end" ()
|
|
101
|
+
const_iterator cend()
|
|
102
|
+
pair[iterator, iterator] equal_range(const T&)
|
|
103
|
+
pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
|
|
104
|
+
iterator erase(iterator)
|
|
105
|
+
iterator const_erase "erase"(const_iterator)
|
|
106
|
+
iterator erase(const_iterator, const_iterator)
|
|
107
|
+
size_t erase(const T&)
|
|
108
|
+
iterator find(const T&)
|
|
109
|
+
const_iterator const_find "find" (const T&)
|
|
110
|
+
pair[iterator, bint] insert(const pair[T, U]&) except +
|
|
111
|
+
iterator insert(const_iterator, const pair[T, U]&) except +
|
|
112
|
+
void insert[InputIt](InputIt, InputIt) except +
|
|
113
|
+
#key_compare key_comp()
|
|
114
|
+
iterator lower_bound(const T&)
|
|
115
|
+
const_iterator const_lower_bound "lower_bound"(const T&)
|
|
116
|
+
size_t max_size()
|
|
117
|
+
reverse_iterator rbegin()
|
|
118
|
+
const_reverse_iterator const_rbegin "rbegin"()
|
|
119
|
+
const_reverse_iterator crbegin()
|
|
120
|
+
reverse_iterator rend()
|
|
121
|
+
const_reverse_iterator const_rend "rend"()
|
|
122
|
+
const_reverse_iterator crend()
|
|
123
|
+
size_t size()
|
|
124
|
+
void swap(map&)
|
|
125
|
+
iterator upper_bound(const T&)
|
|
126
|
+
const_iterator const_upper_bound "upper_bound"(const T&)
|
|
127
|
+
#value_compare value_comp()
|
|
128
|
+
# C++20
|
|
129
|
+
bint contains(const T&)
|
|
130
|
+
|
|
131
|
+
cdef cppclass multimap[T, U, COMPARE=*, ALLOCATOR=*]:
|
|
132
|
+
ctypedef T key_type
|
|
133
|
+
ctypedef U mapped_type
|
|
134
|
+
ctypedef pair[const T, U] value_type
|
|
135
|
+
ctypedef COMPARE key_compare
|
|
136
|
+
ctypedef ALLOCATOR allocator_type
|
|
137
|
+
|
|
138
|
+
# these should really be allocator_type.size_type and
|
|
139
|
+
# allocator_type.difference_type to be true to the C++ definition
|
|
140
|
+
# but cython doesn't support deferred access on template arguments
|
|
141
|
+
ctypedef size_t size_type
|
|
142
|
+
ctypedef ptrdiff_t difference_type
|
|
143
|
+
|
|
144
|
+
cppclass const_iterator
|
|
145
|
+
cppclass iterator:
|
|
146
|
+
iterator() except +
|
|
147
|
+
iterator(iterator&) except +
|
|
148
|
+
# correct would be value_type& but this does not work
|
|
149
|
+
# well with cython's code gen
|
|
150
|
+
pair[T, U]& operator*()
|
|
151
|
+
iterator operator++()
|
|
152
|
+
iterator operator--()
|
|
153
|
+
iterator operator++(int)
|
|
154
|
+
iterator operator--(int)
|
|
155
|
+
bint operator==(iterator)
|
|
156
|
+
bint operator==(const_iterator)
|
|
157
|
+
bint operator!=(iterator)
|
|
158
|
+
bint operator!=(const_iterator)
|
|
159
|
+
cppclass const_iterator:
|
|
160
|
+
const_iterator() except +
|
|
161
|
+
const_iterator(iterator&) except +
|
|
162
|
+
const_iterator(const_iterator&) except +
|
|
163
|
+
operator=(iterator&) except +
|
|
164
|
+
# correct would be const value_type& but this does not work
|
|
165
|
+
# well with cython's code gen
|
|
166
|
+
const pair[T, U]& operator*()
|
|
167
|
+
const_iterator operator++()
|
|
168
|
+
const_iterator operator--()
|
|
169
|
+
const_iterator operator++(int)
|
|
170
|
+
const_iterator operator--(int)
|
|
171
|
+
bint operator==(iterator)
|
|
172
|
+
bint operator==(const_iterator)
|
|
173
|
+
bint operator!=(iterator)
|
|
174
|
+
bint operator!=(const_iterator)
|
|
175
|
+
|
|
176
|
+
cppclass const_reverse_iterator
|
|
177
|
+
cppclass reverse_iterator:
|
|
178
|
+
reverse_iterator() except +
|
|
179
|
+
reverse_iterator(reverse_iterator&) except +
|
|
180
|
+
# correct would be value_type& but this does not work
|
|
181
|
+
# well with cython's code gen
|
|
182
|
+
pair[T, U]& operator*()
|
|
183
|
+
reverse_iterator operator++()
|
|
184
|
+
reverse_iterator operator--()
|
|
185
|
+
reverse_iterator operator++(int)
|
|
186
|
+
reverse_iterator operator--(int)
|
|
187
|
+
bint operator==(reverse_iterator)
|
|
188
|
+
bint operator==(const_reverse_iterator)
|
|
189
|
+
bint operator!=(reverse_iterator)
|
|
190
|
+
bint operator!=(const_reverse_iterator)
|
|
191
|
+
cppclass const_reverse_iterator:
|
|
192
|
+
const_reverse_iterator() except +
|
|
193
|
+
const_reverse_iterator(reverse_iterator&) except +
|
|
194
|
+
operator=(reverse_iterator&) except +
|
|
195
|
+
# correct would be const value_type& but this does not work
|
|
196
|
+
# well with cython's code gen
|
|
197
|
+
const pair[T, U]& operator*()
|
|
198
|
+
const_reverse_iterator operator++()
|
|
199
|
+
const_reverse_iterator operator--()
|
|
200
|
+
const_reverse_iterator operator++(int)
|
|
201
|
+
const_reverse_iterator operator--(int)
|
|
202
|
+
bint operator==(reverse_iterator)
|
|
203
|
+
bint operator==(const_reverse_iterator)
|
|
204
|
+
bint operator!=(reverse_iterator)
|
|
205
|
+
bint operator!=(const_reverse_iterator)
|
|
206
|
+
|
|
207
|
+
multimap() except +
|
|
208
|
+
multimap(const multimap&) except +
|
|
209
|
+
#multimap(key_compare&)
|
|
210
|
+
#multimap& operator=(multimap&)
|
|
211
|
+
bint operator==(const multimap&, const multimap&)
|
|
212
|
+
bint operator!=(const multimap&, const multimap&)
|
|
213
|
+
bint operator<(const multimap&, const multimap&)
|
|
214
|
+
bint operator>(const multimap&, const multimap&)
|
|
215
|
+
bint operator<=(const multimap&, const multimap&)
|
|
216
|
+
bint operator>=(const multimap&, const multimap&)
|
|
217
|
+
iterator begin()
|
|
218
|
+
const_iterator const_begin "begin"()
|
|
219
|
+
const_iterator cbegin()
|
|
220
|
+
void clear()
|
|
221
|
+
size_t count(const T&)
|
|
222
|
+
bint empty()
|
|
223
|
+
iterator end()
|
|
224
|
+
const_iterator const_end "end"()
|
|
225
|
+
const_iterator cend()
|
|
226
|
+
pair[iterator, iterator] equal_range(const T&)
|
|
227
|
+
pair[const_iterator, const_iterator] const_equal_range "equal_range"(const T&)
|
|
228
|
+
iterator erase(iterator)
|
|
229
|
+
iterator const_erase "erase"(const_iterator)
|
|
230
|
+
iterator erase(const_iterator, const_iterator)
|
|
231
|
+
size_t erase(const T&)
|
|
232
|
+
iterator find(const T&)
|
|
233
|
+
const_iterator const_find "find"(const T&)
|
|
234
|
+
iterator insert(const pair[T, U]&) except +
|
|
235
|
+
iterator insert(const_iterator, const pair[T, U]&) except +
|
|
236
|
+
void insert[InputIt](InputIt, InputIt) except +
|
|
237
|
+
#key_compare key_comp()
|
|
238
|
+
iterator lower_bound(const T&)
|
|
239
|
+
const_iterator const_lower_bound "lower_bound"(const T&)
|
|
240
|
+
size_t max_size()
|
|
241
|
+
reverse_iterator rbegin()
|
|
242
|
+
const_reverse_iterator const_rbegin "rbegin"()
|
|
243
|
+
const_reverse_iterator crbegin()
|
|
244
|
+
reverse_iterator rend()
|
|
245
|
+
const_reverse_iterator const_rend "rend"()
|
|
246
|
+
const_reverse_iterator crend()
|
|
247
|
+
size_t size()
|
|
248
|
+
void swap(multimap&)
|
|
249
|
+
iterator upper_bound(const T&)
|
|
250
|
+
const_iterator const_upper_bound "upper_bound"(const T&)
|
|
251
|
+
#value_compare value_comp()
|
|
252
|
+
bint contains(const T&)
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
from libcpp cimport bool, nullptr_t, nullptr
|
|
2
|
+
|
|
3
|
+
cdef extern from "<memory>" namespace "std" nogil:
|
|
4
|
+
cdef cppclass default_delete[T]:
|
|
5
|
+
default_delete()
|
|
6
|
+
|
|
7
|
+
cdef cppclass allocator[T]:
|
|
8
|
+
allocator()
|
|
9
|
+
allocator(const allocator &)
|
|
10
|
+
#allocator(const allocator[U] &) #unique_ptr unit tests fail w/this
|
|
11
|
+
T * address(T &)
|
|
12
|
+
const T * address(const T &) const
|
|
13
|
+
T * allocate( size_t n ) # Not to standard. should be a second default argument
|
|
14
|
+
void deallocate(T * , size_t)
|
|
15
|
+
size_t max_size() const
|
|
16
|
+
void construct( T *, const T &) #C++98. The C++11 version is variadic AND perfect-forwarding
|
|
17
|
+
void destroy(T *) #C++98
|
|
18
|
+
void destroy[U](U *) #unique_ptr unit tests fail w/this
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
cdef cppclass unique_ptr[T,DELETER=*]:
|
|
22
|
+
unique_ptr()
|
|
23
|
+
unique_ptr(nullptr_t)
|
|
24
|
+
unique_ptr(T*)
|
|
25
|
+
unique_ptr(unique_ptr[T]&)
|
|
26
|
+
|
|
27
|
+
# Modifiers
|
|
28
|
+
T* release()
|
|
29
|
+
void reset()
|
|
30
|
+
void reset(nullptr_t)
|
|
31
|
+
void reset(T*)
|
|
32
|
+
void swap(unique_ptr&)
|
|
33
|
+
|
|
34
|
+
# Observers
|
|
35
|
+
T* get()
|
|
36
|
+
T& operator*()
|
|
37
|
+
#T* operator->() # Not Supported
|
|
38
|
+
bool operator bool()
|
|
39
|
+
bool operator!()
|
|
40
|
+
|
|
41
|
+
bool operator==(const unique_ptr&)
|
|
42
|
+
bool operator!=(const unique_ptr&)
|
|
43
|
+
bool operator<(const unique_ptr&)
|
|
44
|
+
bool operator>(const unique_ptr&)
|
|
45
|
+
bool operator<=(const unique_ptr&)
|
|
46
|
+
bool operator>=(const unique_ptr&)
|
|
47
|
+
|
|
48
|
+
bool operator==(nullptr_t)
|
|
49
|
+
bool operator!=(nullptr_t)
|
|
50
|
+
|
|
51
|
+
# Forward Declaration not working ("Compiler crash in AnalyseDeclarationsTransform")
|
|
52
|
+
#cdef cppclass weak_ptr[T]
|
|
53
|
+
|
|
54
|
+
cdef cppclass shared_ptr[T]:
|
|
55
|
+
shared_ptr()
|
|
56
|
+
shared_ptr(nullptr_t)
|
|
57
|
+
shared_ptr(T*)
|
|
58
|
+
shared_ptr(shared_ptr[T]&)
|
|
59
|
+
shared_ptr(shared_ptr[T]&, T*)
|
|
60
|
+
shared_ptr(unique_ptr[T]&)
|
|
61
|
+
#shared_ptr(weak_ptr[T]&) # Not Supported
|
|
62
|
+
shared_ptr[T]& operator=[Y](const shared_ptr[Y]& ptr)
|
|
63
|
+
|
|
64
|
+
# Modifiers
|
|
65
|
+
void reset()
|
|
66
|
+
void reset(T*)
|
|
67
|
+
void swap(shared_ptr&)
|
|
68
|
+
|
|
69
|
+
# Observers
|
|
70
|
+
T* get()
|
|
71
|
+
T& operator*()
|
|
72
|
+
#T* operator->() # Not Supported
|
|
73
|
+
long use_count()
|
|
74
|
+
bool unique()
|
|
75
|
+
bool operator bool()
|
|
76
|
+
bool operator!()
|
|
77
|
+
#bool owner_before[Y](const weak_ptr[Y]&) # Not Supported
|
|
78
|
+
bool owner_before[Y](const shared_ptr[Y]&)
|
|
79
|
+
|
|
80
|
+
bool operator==(const shared_ptr&)
|
|
81
|
+
bool operator!=(const shared_ptr&)
|
|
82
|
+
bool operator<(const shared_ptr&)
|
|
83
|
+
bool operator>(const shared_ptr&)
|
|
84
|
+
bool operator<=(const shared_ptr&)
|
|
85
|
+
bool operator>=(const shared_ptr&)
|
|
86
|
+
|
|
87
|
+
bool operator==(nullptr_t)
|
|
88
|
+
bool operator!=(nullptr_t)
|
|
89
|
+
|
|
90
|
+
cdef cppclass weak_ptr[T]:
|
|
91
|
+
weak_ptr()
|
|
92
|
+
weak_ptr(weak_ptr[T]&)
|
|
93
|
+
weak_ptr(shared_ptr[T]&)
|
|
94
|
+
|
|
95
|
+
# Modifiers
|
|
96
|
+
void reset()
|
|
97
|
+
void swap(weak_ptr&)
|
|
98
|
+
|
|
99
|
+
# Observers
|
|
100
|
+
long use_count()
|
|
101
|
+
bool expired()
|
|
102
|
+
shared_ptr[T] lock()
|
|
103
|
+
bool owner_before[Y](const weak_ptr[Y]&)
|
|
104
|
+
bool owner_before[Y](const shared_ptr[Y]&)
|
|
105
|
+
|
|
106
|
+
# Smart pointer non-member operations
|
|
107
|
+
shared_ptr[T] make_shared[T](...) except +
|
|
108
|
+
|
|
109
|
+
unique_ptr[T] make_unique[T](...) except +
|
|
110
|
+
|
|
111
|
+
# No checking on the compatibility of T and U.
|
|
112
|
+
cdef shared_ptr[T] static_pointer_cast[T, U](const shared_ptr[U]&)
|
|
113
|
+
cdef shared_ptr[T] dynamic_pointer_cast[T, U](const shared_ptr[U]&)
|
|
114
|
+
cdef shared_ptr[T] const_pointer_cast[T, U](const shared_ptr[U]&)
|
|
115
|
+
cdef shared_ptr[T] reinterpret_pointer_cast[T, U](const shared_ptr[U]&)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
cdef extern from "<numbers>" namespace "std::numbers" nogil:
|
|
2
|
+
# C++20 mathematical constants
|
|
3
|
+
const double e
|
|
4
|
+
const double log2e
|
|
5
|
+
const double log10e
|
|
6
|
+
const double pi
|
|
7
|
+
const double inv_pi
|
|
8
|
+
const double inv_sqrtpi
|
|
9
|
+
const double ln2
|
|
10
|
+
const double ln10
|
|
11
|
+
const double sqrt2
|
|
12
|
+
const double sqrt3
|
|
13
|
+
const double inv_sqrt3
|
|
14
|
+
const double egamma
|
|
15
|
+
const double phi
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
cdef extern from "<numeric>" namespace "std" nogil:
|
|
2
|
+
T inner_product[InputIt1, InputIt2, T](InputIt1 first1, InputIt1 last1, InputIt2 first2, T init)
|
|
3
|
+
|
|
4
|
+
T inner_product[InputIt1, InputIt2, T, BinaryOperation1, BinaryOperation2](InputIt1 first1, InputIt1 last1,
|
|
5
|
+
InputIt2 first2, T init,
|
|
6
|
+
BinaryOperation1 op1,
|
|
7
|
+
BinaryOperation2 op2)
|
|
8
|
+
|
|
9
|
+
void iota[ForwardIt, T](ForwardIt first, ForwardIt last, T value)
|
|
10
|
+
|
|
11
|
+
T accumulate[InputIt, T](InputIt first, InputIt last, T init)
|
|
12
|
+
|
|
13
|
+
T accumulate[InputIt, T, BinaryOperation](InputIt first, InputIt last, T init, BinaryOperation op)
|
|
14
|
+
|
|
15
|
+
void adjacent_difference[InputIt, OutputIt](InputIt in_first, InputIt in_last, OutputIt out_first)
|
|
16
|
+
|
|
17
|
+
void adjacent_difference[InputIt, OutputIt, BinaryOperation](InputIt in_first, InputIt in_last, OutputIt out_first,
|
|
18
|
+
BinaryOperation op)
|
|
19
|
+
|
|
20
|
+
void partial_sum[InputIt, OutputIt](InputIt in_first, OutputIt in_last, OutputIt out_first)
|
|
21
|
+
|
|
22
|
+
void partial_sum[InputIt, OutputIt, BinaryOperation](InputIt in_first, InputIt in_last, OutputIt out_first,
|
|
23
|
+
BinaryOperation op)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
T reduce[InputIt, T](InputIt first, InputIt last, T init)
|
|
27
|
+
|
|
28
|
+
# ambiguous with next overload
|
|
29
|
+
#T reduce[ExecutionPolicy, ForwardIt, T](ExecutionPolicy&& policy,
|
|
30
|
+
# ForwardIt first, ForwardIt last, T init)
|
|
31
|
+
|
|
32
|
+
T reduce[InputIt, T, BinaryOp](InputIt first, InputIt last, T init, BinaryOp binary_op)
|
|
33
|
+
|
|
34
|
+
T reduce[ExecutionPolicy, ForwardIt, T, BinaryOp](ExecutionPolicy&& policy,
|
|
35
|
+
ForwardIt first, ForwardIt last, T init, BinaryOp binary_op)
|
|
36
|
+
|
|
37
|
+
T transform_reduce[InputIt1, InputIt2, T](InputIt1 first1, InputIt1 last1,
|
|
38
|
+
InputIt2 first2, T init)
|
|
39
|
+
|
|
40
|
+
T transform_reduce[InputIt1, InputIt2, T, BinaryReductionOp, BinaryTransformOp](
|
|
41
|
+
InputIt1 first1, InputIt1 last1, InputIt2 first2, T init,
|
|
42
|
+
BinaryReductionOp reduce, BinaryTransformOp transform)
|
|
43
|
+
|
|
44
|
+
T transform_reduce[InputIt, T, BinaryReductionOp, UnaryTransformOp](
|
|
45
|
+
InputIt first, InputIt last, T init, BinaryReductionOp reduce,
|
|
46
|
+
UnaryTransformOp transform)
|
|
47
|
+
|
|
48
|
+
# ambiguous with previous overload
|
|
49
|
+
#T transform_reduce[ExecutionPolicy, ForwardIt1, ForwardIt2, T](
|
|
50
|
+
# ExecutionPolicy&& policy, ForwardIt1 first1, ForwardIt1 last1,
|
|
51
|
+
# ForwardIt2 first2, T init)
|
|
52
|
+
|
|
53
|
+
T transform_reduce[ExecutionPolicy, ForwardIt1, ForwardIt2, T, BinaryReductionOp, BinaryTransformOp](
|
|
54
|
+
ExecutionPolicy&& policy, ForwardIt1 first1, ForwardIt1 last1, ForwardIt2 first2, T init,
|
|
55
|
+
BinaryReductionOp reduce, BinaryTransformOp transform)
|
|
56
|
+
|
|
57
|
+
# ambiguous with second overload
|
|
58
|
+
#T transform_reduce[ExecutionPolicy, ForwardIt, T, BinaryReductionOp, UnaryTransformOp](
|
|
59
|
+
# ExecutionPolicy&& policy, ForwardIt first, ForwardIt last, T init, BinaryReductionOp reduce,
|
|
60
|
+
# UnaryTransformOp transform)
|
|
61
|
+
|
|
62
|
+
OutputIt inclusive_scan[InputIt, OutputIt](InputIt first, InputIt last, OutputIt d_first)
|
|
63
|
+
|
|
64
|
+
# ambiguous with next overload
|
|
65
|
+
# ForwardIt2 inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2](
|
|
66
|
+
# ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last,
|
|
67
|
+
# ForwardIt2 d_first)
|
|
68
|
+
|
|
69
|
+
OutputIt inclusive_scan[InputIt, OutputIt, BinaryOperation](
|
|
70
|
+
InputIt first, InputIt last, OutputIt d_first, BinaryOperation binary_op)
|
|
71
|
+
|
|
72
|
+
# ambiguous with next overload
|
|
73
|
+
# ForwardIt2 inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, BinaryOperation](
|
|
74
|
+
# ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first,
|
|
75
|
+
# BinaryOperation binary_op)
|
|
76
|
+
|
|
77
|
+
OutputIt inclusive_scan[InputIt, OutputIt, BinaryOperation, T](
|
|
78
|
+
InputIt first, InputIt last, OutputIt d_first, BinaryOperation binary_op,
|
|
79
|
+
T init)
|
|
80
|
+
|
|
81
|
+
#
|
|
82
|
+
# ForwardIt2 inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, BinaryOperation, T](
|
|
83
|
+
# ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first,
|
|
84
|
+
# BinaryOperation binary_op, T init)
|
|
85
|
+
|
|
86
|
+
OutputIt exclusive_scan[InputIt, OutputIt, T](InputIt first, InputIt last,
|
|
87
|
+
OutputIt d_first, T init)
|
|
88
|
+
|
|
89
|
+
# ambiguous with next overload
|
|
90
|
+
#ForwardIt2 exclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, T](
|
|
91
|
+
# ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last,
|
|
92
|
+
# ForwardIt2 d_first, T init)
|
|
93
|
+
|
|
94
|
+
OutputIt exclusive_scan[InputIt, OutputIt, T, BinaryOperation](
|
|
95
|
+
InputIt first, InputIt last, OutputIt d_first, T init, BinaryOperation binary_op)
|
|
96
|
+
|
|
97
|
+
ForwardIt2 exclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, T, BinaryOperation](
|
|
98
|
+
ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first,
|
|
99
|
+
T init, BinaryOperation binary_op)
|
|
100
|
+
|
|
101
|
+
OutputIt transform_inclusive_scan[InputIt, OutputIt, BinaryOperation, UnaryOperation](
|
|
102
|
+
InputIt first, InputIt last, OutputIt d_first, BinaryOperation binary_op,
|
|
103
|
+
UnaryOperation unary_op)
|
|
104
|
+
|
|
105
|
+
# ambiguous with next overload
|
|
106
|
+
# ForwardIt2 transform_inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, BinaryOperation, UnaryOperation](
|
|
107
|
+
# ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first,
|
|
108
|
+
# BinaryOperation binary_op, UnaryOperation unary_op)
|
|
109
|
+
|
|
110
|
+
OutputIt transform_inclusive_scan[InputIt, OutputIt, BinaryOperation, UnaryOperation, T](
|
|
111
|
+
InputIt first, InputIt last, OutputIt d_first, BinaryOperation binary_op,
|
|
112
|
+
UnaryOperation unary_op, T init)
|
|
113
|
+
|
|
114
|
+
ForwardIt2 transform_inclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, BinaryOperation, UnaryOperation, T](
|
|
115
|
+
ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first,
|
|
116
|
+
BinaryOperation binary_op, UnaryOperation unary_op, T init)
|
|
117
|
+
|
|
118
|
+
OutputIt transform_exclusive_scan[InputIt, OutputIt, T, BinaryOperation, UnaryOperation](
|
|
119
|
+
InputIt first, InputIt last, OutputIt d_first, T init, BinaryOperation binary_op,
|
|
120
|
+
UnaryOperation unary_op)
|
|
121
|
+
|
|
122
|
+
ForwardIt2 transform_exclusive_scan[ExecutionPolicy, ForwardIt1, ForwardIt2, T, BinaryOperation, UnaryOperation](
|
|
123
|
+
ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last, ForwardIt2 d_first,
|
|
124
|
+
T init, BinaryOperation binary_op, UnaryOperation unary_op)
|
|
125
|
+
|
|
126
|
+
# C++17
|
|
127
|
+
T gcd[T](T a, T b)
|
|
128
|
+
T lcm[T](T a, T b)
|
|
129
|
+
|
|
130
|
+
# C++20
|
|
131
|
+
T midpoint[T](T a, T b) except +
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from libcpp cimport bool
|
|
2
|
+
|
|
3
|
+
cdef extern from "<optional>" namespace "std" nogil:
|
|
4
|
+
cdef cppclass nullopt_t:
|
|
5
|
+
nullopt_t()
|
|
6
|
+
|
|
7
|
+
cdef nullopt_t nullopt
|
|
8
|
+
|
|
9
|
+
cdef cppclass optional[T]:
|
|
10
|
+
ctypedef T value_type
|
|
11
|
+
optional()
|
|
12
|
+
optional(nullopt_t)
|
|
13
|
+
optional(optional&) except +
|
|
14
|
+
optional(T&) except +
|
|
15
|
+
bool has_value()
|
|
16
|
+
T& value() except +
|
|
17
|
+
T& value_or[U](U& default_value)
|
|
18
|
+
void swap(optional&)
|
|
19
|
+
void reset()
|
|
20
|
+
T& emplace(...)
|
|
21
|
+
T& operator*()
|
|
22
|
+
#T* operator->() # Not Supported
|
|
23
|
+
optional& operator=(optional&)
|
|
24
|
+
optional& operator=[U](U&)
|
|
25
|
+
bool operator bool()
|
|
26
|
+
bool operator!()
|
|
27
|
+
bool operator==[U](optional&, U&)
|
|
28
|
+
bool operator!=[U](optional&, U&)
|
|
29
|
+
bool operator<[U](optional&, U&)
|
|
30
|
+
bool operator>[U](optional&, U&)
|
|
31
|
+
bool operator<=[U](optional&, U&)
|
|
32
|
+
bool operator>=[U](optional&, U&)
|
|
33
|
+
|
|
34
|
+
optional[T] make_optional[T](...) except +
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .utility cimport pair
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
cdef extern from "<queue>" namespace "std" nogil:
|
|
2
|
+
cdef cppclass queue[T]:
|
|
3
|
+
queue() except +
|
|
4
|
+
queue(queue&) except +
|
|
5
|
+
#queue(Container&)
|
|
6
|
+
T& back()
|
|
7
|
+
bint empty()
|
|
8
|
+
T& front()
|
|
9
|
+
void pop()
|
|
10
|
+
void push(T&)
|
|
11
|
+
size_t size()
|
|
12
|
+
# C++11 methods
|
|
13
|
+
void swap(queue&)
|
|
14
|
+
|
|
15
|
+
cdef cppclass priority_queue[T]:
|
|
16
|
+
priority_queue() except +
|
|
17
|
+
priority_queue(priority_queue&) except +
|
|
18
|
+
#priority_queue(Container&)
|
|
19
|
+
bint empty()
|
|
20
|
+
void pop()
|
|
21
|
+
void push(T&)
|
|
22
|
+
size_t size()
|
|
23
|
+
T& top()
|
|
24
|
+
# C++11 methods
|
|
25
|
+
void swap(priority_queue&)
|