Skip to content

Commit 38810e4

Browse files
authored
Merge pull request #385 from arcondello/feature/libcpp-nodes
Break libcpp.nodes into a subpackage
2 parents f64d9c3 + 22e2873 commit 38810e4

23 files changed

Lines changed: 659 additions & 329 deletions

dwave/optimization/libcpp/graph.pxd

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,8 @@ cdef extern from "dwave-optimization/graph.hpp" namespace "dwave::optimization"
3737
cdef cppclass DecisionNode(Node):
3838
pass
3939

40-
# This would usually be defined in nodes.pxd, but we need it for Graph.inputs() so to
41-
# avoid the circular dependency we define it here.
42-
cdef extern from "dwave-optimization/nodes/inputs.hpp" namespace "dwave::optimization" nogil:
43-
cdef cppclass InputNode(ArrayNode):
44-
const double* buff() const
45-
void initialize_state(State&, span[const double] data) except+
40+
# Must come after the declaration of ArrayNode to avoid circular imports
41+
from dwave.optimization.libcpp.nodes.inputs cimport InputNode
4642

4743
# Sometimes Cython isn't able to reason about pointers as template inputs, so
4844
# we make a few aliases for convenience

dwave/optimization/libcpp/nodes.pxd

Lines changed: 0 additions & 323 deletions
This file was deleted.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Copyright 2025 D-Wave
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
from dwave.optimization.libcpp.nodes.binaryop cimport *
16+
from dwave.optimization.libcpp.nodes.collections cimport *
17+
from dwave.optimization.libcpp.nodes.constants cimport *
18+
from dwave.optimization.libcpp.nodes.creation cimport *
19+
from dwave.optimization.libcpp.nodes.flow cimport *
20+
from dwave.optimization.libcpp.nodes.indexing cimport *
21+
from dwave.optimization.libcpp.nodes.inputs cimport *
22+
from dwave.optimization.libcpp.nodes.interpolation cimport *
23+
from dwave.optimization.libcpp.nodes.lambda_ cimport *
24+
from dwave.optimization.libcpp.nodes.lp cimport *
25+
from dwave.optimization.libcpp.nodes.manipulation cimport *
26+
from dwave.optimization.libcpp.nodes.naryop cimport *
27+
from dwave.optimization.libcpp.nodes.numbers cimport *
28+
from dwave.optimization.libcpp.nodes.quadratic_model cimport *
29+
from dwave.optimization.libcpp.nodes.reduce cimport *
30+
from dwave.optimization.libcpp.nodes.softmax cimport *
31+
from dwave.optimization.libcpp.nodes.sorting cimport *
32+
from dwave.optimization.libcpp.nodes.statistics cimport *
33+
from dwave.optimization.libcpp.nodes.testing cimport *
34+
from dwave.optimization.libcpp.nodes.unaryop cimport *

0 commit comments

Comments
 (0)