Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jerrrrry
infinilm
Commits
bfae3bbb
Commit
bfae3bbb
authored
Aug 11, 2025
by
wooway777
Browse files
issue/21 - made TensorDesc const
parent
21ef8820
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
7 deletions
+25
-7
src/tensor.hpp
src/tensor.hpp
+1
-1
src/tensor/transform.cpp
src/tensor/transform.cpp
+24
-6
No files found.
src/tensor.hpp
View file @
bfae3bbb
...
@@ -86,7 +86,7 @@ public:
...
@@ -86,7 +86,7 @@ public:
class
Tensor
:
public
std
::
enable_shared_from_this
<
Tensor
>
{
class
Tensor
:
public
std
::
enable_shared_from_this
<
Tensor
>
{
private:
private:
std
::
shared_ptr
<
Storage
>
_storage
;
std
::
shared_ptr
<
Storage
>
_storage
;
std
::
shared_ptr
<
TensorDesc
>
_desc
;
std
::
shared_ptr
<
const
TensorDesc
>
_desc
;
ptrdiff_t
_offset
;
ptrdiff_t
_offset
;
...
...
src/tensor/transform.cpp
View file @
bfae3bbb
...
@@ -67,8 +67,14 @@ void TensorDesc::dimMerge(size_t dim_start, size_t dim_end) {
...
@@ -67,8 +67,14 @@ void TensorDesc::dimMerge(size_t dim_start, size_t dim_end) {
}
}
std
::
shared_ptr
<
Tensor
>
Tensor
::
dimMerge
(
size_t
dim_start
,
size_t
dim_end
)
{
std
::
shared_ptr
<
Tensor
>
Tensor
::
dimMerge
(
size_t
dim_start
,
size_t
dim_end
)
{
this
->
_desc
->
dimMerge
(
dim_start
,
dim_end
);
auto
new_desc
=
TensorDesc
::
create
(
_desc
->
dtype
(),
_desc
->
shape
(),
_desc
->
strides
());
return
shared_from_this
();
new_desc
->
dimMerge
(
dim_start
,
dim_end
);
auto
tensor
=
std
::
make_shared
<
Tensor
>
();
tensor
->
_storage
=
_storage
;
tensor
->
_desc
=
new_desc
;
tensor
->
_offset
=
_offset
;
return
tensor
;
}
}
void
TensorDesc
::
dimSplit
(
size_t
dim
,
const
std
::
vector
<
size_t
>
&
dims
)
{
void
TensorDesc
::
dimSplit
(
size_t
dim
,
const
std
::
vector
<
size_t
>
&
dims
)
{
...
@@ -94,8 +100,14 @@ void TensorDesc::dimSplit(size_t dim, const std::vector<size_t> &dims) {
...
@@ -94,8 +100,14 @@ void TensorDesc::dimSplit(size_t dim, const std::vector<size_t> &dims) {
}
}
std
::
shared_ptr
<
Tensor
>
Tensor
::
dimSplit
(
size_t
dim
,
const
std
::
vector
<
size_t
>
&
dims
)
{
std
::
shared_ptr
<
Tensor
>
Tensor
::
dimSplit
(
size_t
dim
,
const
std
::
vector
<
size_t
>
&
dims
)
{
this
->
_desc
->
dimSplit
(
dim
,
dims
);
auto
new_desc
=
TensorDesc
::
create
(
_desc
->
dtype
(),
_desc
->
shape
(),
_desc
->
strides
());
return
shared_from_this
();
new_desc
->
dimSplit
(
dim
,
dims
);
auto
tensor
=
std
::
make_shared
<
Tensor
>
();
tensor
->
_storage
=
_storage
;
tensor
->
_desc
=
new_desc
;
tensor
->
_offset
=
_offset
;
return
tensor
;
}
}
void
TensorDesc
::
permute
(
const
std
::
vector
<
size_t
>
&
order
)
{
void
TensorDesc
::
permute
(
const
std
::
vector
<
size_t
>
&
order
)
{
...
@@ -114,6 +126,12 @@ void TensorDesc::permute(const std::vector<size_t> &order) {
...
@@ -114,6 +126,12 @@ void TensorDesc::permute(const std::vector<size_t> &order) {
}
}
std
::
shared_ptr
<
Tensor
>
Tensor
::
permute
(
const
std
::
vector
<
size_t
>
&
order
)
{
std
::
shared_ptr
<
Tensor
>
Tensor
::
permute
(
const
std
::
vector
<
size_t
>
&
order
)
{
this
->
_desc
->
permute
(
order
);
auto
new_desc
=
TensorDesc
::
create
(
_desc
->
dtype
(),
_desc
->
shape
(),
_desc
->
strides
());
return
shared_from_this
();
new_desc
->
permute
(
order
);
auto
tensor
=
std
::
make_shared
<
Tensor
>
();
tensor
->
_storage
=
_storage
;
tensor
->
_desc
=
new_desc
;
tensor
->
_offset
=
_offset
;
return
tensor
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment