Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ift
NIFTy
Commits
1763f1ca
Commit
1763f1ca
authored
Oct 29, 2019
by
Lukas Platz
Browse files
move total_volume functionality to DomainTuple
parent
4a05f59b
Pipeline
#62676
passed with stages
in 7 minutes and 32 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
nifty5/domain_tuple.py
View file @
1763f1ca
...
...
@@ -19,6 +19,8 @@ from functools import reduce
from
.
import
utilities
from
.domains.domain
import
Domain
import
numpy
as
np
class
DomainTuple
(
object
):
"""Ordered sequence of Domain objects.
...
...
@@ -125,11 +127,28 @@ class DomainTuple(object):
"""
return
self
.
_size
@
property
def
total_volume
(
self
):
def
total_volume
(
self
,
spaces
=
None
):
"""Returns the total volume of `self` or of a subspace of it.
Parameters
----------
spaces : int, tuple of int or None
Indices of the sub-domains of the domain to be considered.
If `None`, the total volume of the whole domain is returned.
Returns
-------
float
the total volume of the requested (sub-)domain.
"""
if
np
.
isscalar
(
spaces
):
return
self
.
_dom
[
spaces
].
total_volume
if
spaces
is
None
:
spaces
=
range
(
len
(
self
.
_dom
))
res
=
1.
for
d
in
s
elf
.
_dom
:
res
*=
d
.
total_volume
for
i
in
s
paces
:
res
*=
self
.
_dom
[
i
]
.
total_volume
return
res
@
property
...
...
nifty5/field.py
View file @
1763f1ca
...
...
@@ -260,30 +260,20 @@ class Field(object):
return
res
def
total_volume
(
self
,
spaces
=
None
):
"""Returns the total volume of
a sub-
domain of
`self`
.
"""Returns the total volume of
the field's
domain
or
of
a subspace of it
.
Parameters
----------
spaces : int, tuple of int or None
Indices of the sub-domains of the field's domain to be considered.
If `None`, the
entir
e domain is
us
ed.
If `None`, the
total volume of the whol
e domain is
return
ed.
Returns
-------
float
the total volume of the requested sub-domain.
the total volume of the requested
(
sub-
)
domain.
"""
if
spaces
is
None
:
return
self
.
_domain
.
total_volume
if
np
.
isscalar
(
spaces
):
return
self
.
_domain
[
spaces
].
total_volume
# tuple of spaces given
res
=
1.
for
i
in
spaces
:
res
*=
self
.
_domain
[
i
].
total_volume
return
res
return
self
.
_domain
.
total_volume
(
spaces
)
def
weight
(
self
,
power
=
1
,
spaces
=
None
):
"""Weights the pixels of `self` with their invidual pixel volumes.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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