Skip to content

Commit 0bc991d

Browse files
authored
Moved AxisSet, AxisVector, Coordinate, CoordinateDiff to ov (openvinotoolkit#7237)
1 parent 4a468ac commit 0bc991d

File tree

13 files changed

+275
-220
lines changed

13 files changed

+275
-220
lines changed

ngraph/core/include/ngraph/axis_set.hpp

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -11,53 +11,8 @@
1111

1212
#include "ngraph/attribute_adapter.hpp"
1313
#include "ngraph/ngraph_visibility.hpp"
14+
#include "openvino/core/axis_set.hpp"
1415

1516
namespace ngraph {
16-
/// \brief A set of axes.
17-
class AxisSet : public std::set<size_t> {
18-
public:
19-
NGRAPH_API AxisSet();
20-
21-
NGRAPH_API AxisSet(const std::initializer_list<size_t>& axes);
22-
23-
NGRAPH_API AxisSet(const std::set<size_t>& axes);
24-
25-
NGRAPH_API AxisSet(const std::vector<size_t>& axes);
26-
27-
NGRAPH_API AxisSet(const AxisSet& axes);
28-
29-
NGRAPH_API AxisSet& operator=(const AxisSet& v);
30-
31-
NGRAPH_API AxisSet& operator=(AxisSet&& v) noexcept;
32-
33-
NGRAPH_API std::vector<int64_t> to_vector() const;
34-
};
35-
36-
NGRAPH_API
37-
std::ostream& operator<<(std::ostream& s, const AxisSet& axis_set);
17+
using ov::AxisSet;
3818
} // namespace ngraph
39-
40-
namespace ov {
41-
42-
template <>
43-
class NGRAPH_API AttributeAdapter<ngraph::AxisSet> : public ValueAccessor<std::vector<int64_t>> {
44-
public:
45-
AttributeAdapter(ngraph::AxisSet& value) : m_ref(value) {}
46-
47-
const std::vector<int64_t>& get() override;
48-
void set(const std::vector<int64_t>& value) override;
49-
static constexpr DiscreteTypeInfo type_info{"AttributeAdapter<AxisSet>", 0};
50-
const DiscreteTypeInfo& get_type_info() const override {
51-
return type_info;
52-
}
53-
operator ngraph::AxisSet&() {
54-
return m_ref;
55-
}
56-
57-
protected:
58-
ngraph::AxisSet& m_ref;
59-
std::vector<int64_t> m_buffer;
60-
bool m_buffer_valid{false};
61-
};
62-
63-
} // namespace ov

ngraph/core/include/ngraph/axis_vector.hpp

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -10,48 +10,9 @@
1010

1111
#include "ngraph/attribute_adapter.hpp"
1212
#include "ngraph/ngraph_visibility.hpp"
13+
#include "openvino/core/axis_vector.hpp"
1314

1415
namespace ngraph {
1516
/// \brief A vector of axes.
16-
class AxisVector : public std::vector<size_t> {
17-
public:
18-
NGRAPH_API AxisVector(const std::initializer_list<size_t>& axes);
19-
20-
NGRAPH_API AxisVector(const std::vector<size_t>& axes);
21-
22-
NGRAPH_API AxisVector(const AxisVector& axes);
23-
24-
NGRAPH_API explicit AxisVector(size_t n);
25-
26-
template <class InputIterator>
27-
AxisVector(InputIterator first, InputIterator last) : std::vector<size_t>(first, last) {}
28-
29-
NGRAPH_API AxisVector();
30-
31-
NGRAPH_API ~AxisVector();
32-
33-
NGRAPH_API AxisVector& operator=(const AxisVector& v);
34-
35-
NGRAPH_API AxisVector& operator=(AxisVector&& v) noexcept;
36-
};
37-
38-
NGRAPH_API
39-
std::ostream& operator<<(std::ostream& s, const AxisVector& axis_vector);
17+
using ov::AxisVector;
4018
} // namespace ngraph
41-
42-
namespace ov {
43-
44-
template <>
45-
class NGRAPH_API AttributeAdapter<ngraph::AxisVector>
46-
: public IndirectVectorValueAccessor<ngraph::AxisVector, std::vector<int64_t>> {
47-
public:
48-
AttributeAdapter(ngraph::AxisVector& value)
49-
: IndirectVectorValueAccessor<ngraph::AxisVector, std::vector<int64_t>>(value) {}
50-
51-
static constexpr DiscreteTypeInfo type_info{"AttributeAdapter<AxisVector>", 0};
52-
const DiscreteTypeInfo& get_type_info() const override {
53-
return type_info;
54-
}
55-
};
56-
57-
} // namespace ov

ngraph/core/include/ngraph/coordinate.hpp

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -10,47 +10,9 @@
1010
#include "ngraph/attribute_adapter.hpp"
1111
#include "ngraph/axis_set.hpp"
1212
#include "ngraph/shape.hpp"
13+
#include "openvino/core/coordinate.hpp"
1314

1415
namespace ngraph {
1516
/// \brief Coordinates for a tensor element
16-
class Coordinate : public std::vector<size_t> {
17-
public:
18-
NGRAPH_API Coordinate();
19-
NGRAPH_API Coordinate(const std::initializer_list<size_t>& axes);
20-
21-
NGRAPH_API Coordinate(const Shape& shape);
22-
23-
NGRAPH_API Coordinate(const std::vector<size_t>& axes);
24-
25-
NGRAPH_API Coordinate(const Coordinate& axes);
26-
27-
NGRAPH_API Coordinate(size_t n, size_t initial_value = 0);
28-
29-
NGRAPH_API ~Coordinate();
30-
31-
template <class InputIterator>
32-
Coordinate(InputIterator first, InputIterator last) : std::vector<size_t>(first, last) {}
33-
34-
NGRAPH_API Coordinate& operator=(const Coordinate& v);
35-
36-
NGRAPH_API Coordinate& operator=(Coordinate&& v) noexcept;
37-
};
38-
39-
NGRAPH_API
40-
std::ostream& operator<<(std::ostream& s, const Coordinate& coordinate);
17+
using ov::Coordinate;
4118
} // namespace ngraph
42-
43-
namespace ov {
44-
template <>
45-
class NGRAPH_API AttributeAdapter<ngraph::Coordinate>
46-
: public IndirectVectorValueAccessor<ngraph::Coordinate, std::vector<int64_t>> {
47-
public:
48-
AttributeAdapter(ngraph::Coordinate& value)
49-
: IndirectVectorValueAccessor<ngraph::Coordinate, std::vector<int64_t>>(value) {}
50-
51-
static constexpr DiscreteTypeInfo type_info{"AttributeAdapter<Coordinate>", 0};
52-
const DiscreteTypeInfo& get_type_info() const override {
53-
return type_info;
54-
}
55-
};
56-
} // namespace ov

ngraph/core/include/ngraph/coordinate_diff.hpp

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -10,50 +10,9 @@
1010

1111
#include "ngraph/attribute_adapter.hpp"
1212
#include "ngraph/ngraph_visibility.hpp"
13+
#include "openvino/core/coordinate_diff.hpp"
1314

1415
namespace ngraph {
1516
/// \brief A difference (signed) of tensor element coordinates.
16-
class CoordinateDiff : public std::vector<std::ptrdiff_t> {
17-
public:
18-
NGRAPH_API CoordinateDiff(const std::initializer_list<std::ptrdiff_t>& diffs);
19-
20-
NGRAPH_API CoordinateDiff(const std::vector<std::ptrdiff_t>& diffs);
21-
22-
NGRAPH_API CoordinateDiff(const CoordinateDiff& diffs);
23-
24-
NGRAPH_API explicit CoordinateDiff(size_t n, std::ptrdiff_t initial_value = 0);
25-
26-
template <class InputIterator>
27-
CoordinateDiff(InputIterator first, InputIterator last) : std::vector<std::ptrdiff_t>(first, last) {}
28-
29-
NGRAPH_API ~CoordinateDiff();
30-
31-
NGRAPH_API CoordinateDiff();
32-
33-
NGRAPH_API CoordinateDiff& operator=(const CoordinateDiff& v);
34-
35-
NGRAPH_API CoordinateDiff& operator=(CoordinateDiff&& v) noexcept;
36-
};
37-
38-
NGRAPH_API
39-
std::ostream& operator<<(std::ostream& s, const CoordinateDiff& coordinate_diff);
17+
using ov::CoordinateDiff;
4018
} // namespace ngraph
41-
42-
namespace ov {
43-
44-
template <>
45-
class NGRAPH_API AttributeAdapter<ngraph::CoordinateDiff>
46-
: public IndirectVectorValueAccessor<ngraph::CoordinateDiff, std::vector<int64_t>>
47-
48-
{
49-
public:
50-
AttributeAdapter(ngraph::CoordinateDiff& value)
51-
: IndirectVectorValueAccessor<ngraph::CoordinateDiff, std::vector<int64_t>>(value) {}
52-
53-
static constexpr DiscreteTypeInfo type_info{"AttributeAdapter<CoordinateDiff>", 0};
54-
const DiscreteTypeInfo& get_type_info() const override {
55-
return type_info;
56-
}
57-
};
58-
59-
} // namespace ov
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Copyright (C) 2018-2021 Intel Corporation
2+
// SPDX-License-Identifier: Apache-2.0
3+
//
4+
5+
#pragma once
6+
7+
#include <cstddef>
8+
#include <ostream>
9+
#include <set>
10+
#include <vector>
11+
12+
#include "openvino/core/attribute_adapter.hpp"
13+
#include "openvino/core/core_visibility.hpp"
14+
15+
namespace ov {
16+
/// \brief A set of axes.
17+
class AxisSet : public std::set<size_t> {
18+
public:
19+
OPENVINO_API AxisSet();
20+
21+
OPENVINO_API AxisSet(const std::initializer_list<size_t>& axes);
22+
23+
OPENVINO_API AxisSet(const std::set<size_t>& axes);
24+
25+
OPENVINO_API AxisSet(const std::vector<size_t>& axes);
26+
27+
OPENVINO_API AxisSet(const AxisSet& axes);
28+
29+
OPENVINO_API AxisSet& operator=(const AxisSet& v);
30+
31+
OPENVINO_API AxisSet& operator=(AxisSet&& v) noexcept;
32+
33+
OPENVINO_API std::vector<int64_t> to_vector() const;
34+
};
35+
36+
OPENVINO_API
37+
std::ostream& operator<<(std::ostream& s, const AxisSet& axis_set);
38+
39+
template <>
40+
class OPENVINO_API AttributeAdapter<ov::AxisSet> : public ValueAccessor<std::vector<int64_t>> {
41+
public:
42+
AttributeAdapter(ov::AxisSet& value) : m_ref(value) {}
43+
44+
const std::vector<int64_t>& get() override;
45+
void set(const std::vector<int64_t>& value) override;
46+
static constexpr DiscreteTypeInfo type_info{"AttributeAdapter<AxisSet>", 0};
47+
const DiscreteTypeInfo& get_type_info() const override {
48+
return type_info;
49+
}
50+
operator ov::AxisSet&() {
51+
return m_ref;
52+
}
53+
54+
protected:
55+
ov::AxisSet& m_ref;
56+
std::vector<int64_t> m_buffer;
57+
bool m_buffer_valid{false};
58+
};
59+
60+
} // namespace ov
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Copyright (C) 2018-2021 Intel Corporation
2+
// SPDX-License-Identifier: Apache-2.0
3+
//
4+
5+
#pragma once
6+
7+
#include <cstddef>
8+
#include <ostream>
9+
#include <vector>
10+
11+
#include "openvino/core/attribute_adapter.hpp"
12+
#include "openvino/core/core_visibility.hpp"
13+
14+
namespace ov {
15+
/// \brief A vector of axes.
16+
class AxisVector : public std::vector<size_t> {
17+
public:
18+
OPENVINO_API AxisVector(const std::initializer_list<size_t>& axes);
19+
20+
OPENVINO_API AxisVector(const std::vector<size_t>& axes);
21+
22+
OPENVINO_API AxisVector(const AxisVector& axes);
23+
24+
OPENVINO_API explicit AxisVector(size_t n);
25+
26+
template <class InputIterator>
27+
AxisVector(InputIterator first, InputIterator last) : std::vector<size_t>(first, last) {}
28+
29+
OPENVINO_API AxisVector();
30+
31+
OPENVINO_API ~AxisVector();
32+
33+
OPENVINO_API AxisVector& operator=(const AxisVector& v);
34+
35+
OPENVINO_API AxisVector& operator=(AxisVector&& v) noexcept;
36+
};
37+
38+
OPENVINO_API
39+
std::ostream& operator<<(std::ostream& s, const AxisVector& axis_vector);
40+
41+
template <>
42+
class OPENVINO_API AttributeAdapter<AxisVector> : public IndirectVectorValueAccessor<AxisVector, std::vector<int64_t>> {
43+
public:
44+
AttributeAdapter(AxisVector& value) : IndirectVectorValueAccessor<AxisVector, std::vector<int64_t>>(value) {}
45+
46+
static constexpr DiscreteTypeInfo type_info{"AttributeAdapter<AxisVector>", 0};
47+
const DiscreteTypeInfo& get_type_info() const override {
48+
return type_info;
49+
}
50+
};
51+
52+
} // namespace ov
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Copyright (C) 2018-2021 Intel Corporation
2+
// SPDX-License-Identifier: Apache-2.0
3+
//
4+
5+
#pragma once
6+
7+
#include <algorithm>
8+
#include <vector>
9+
10+
#include "ngraph/shape.hpp"
11+
#include "openvino/core/core_visibility.hpp"
12+
13+
namespace ov {
14+
/// \brief Coordinates for a tensor element
15+
class Coordinate : public std::vector<size_t> {
16+
public:
17+
OPENVINO_API Coordinate();
18+
OPENVINO_API Coordinate(const std::initializer_list<size_t>& axes);
19+
20+
OPENVINO_API Coordinate(const ngraph::Shape& shape);
21+
22+
OPENVINO_API Coordinate(const std::vector<size_t>& axes);
23+
24+
OPENVINO_API Coordinate(const Coordinate& axes);
25+
26+
OPENVINO_API Coordinate(size_t n, size_t initial_value = 0);
27+
28+
OPENVINO_API ~Coordinate();
29+
30+
template <class InputIterator>
31+
Coordinate(InputIterator first, InputIterator last) : std::vector<size_t>(first, last) {}
32+
33+
OPENVINO_API Coordinate& operator=(const Coordinate& v);
34+
35+
OPENVINO_API Coordinate& operator=(Coordinate&& v) noexcept;
36+
};
37+
38+
OPENVINO_API
39+
std::ostream& operator<<(std::ostream& s, const Coordinate& coordinate);
40+
41+
template <>
42+
class OPENVINO_API AttributeAdapter<Coordinate> : public IndirectVectorValueAccessor<Coordinate, std::vector<int64_t>> {
43+
public:
44+
AttributeAdapter(Coordinate& value) : IndirectVectorValueAccessor<Coordinate, std::vector<int64_t>>(value) {}
45+
46+
static constexpr DiscreteTypeInfo type_info{"AttributeAdapter<Coordinate>", 0};
47+
const DiscreteTypeInfo& get_type_info() const override {
48+
return type_info;
49+
}
50+
};
51+
} // namespace ov

0 commit comments

Comments
 (0)