Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
c9f8f653
Commit
c9f8f653
authored
Nov 21, 2014
by
Damien George
Browse files
py: Add support for float/double arrays in array module.
Addresses issue #981.
parent
9d1ca65b
Changes
2
Hide whitespace changes
Inline
Side-by-side
py/binary.c
View file @
c9f8f653
...
...
@@ -61,6 +61,10 @@ int mp_binary_get_size(char struct_type, char val_type, mp_uint_t *palign) {
size
=
8
;
break
;
case
'P'
:
case
'O'
:
case
'S'
:
size
=
sizeof
(
void
*
);
break
;
case
'f'
:
size
=
sizeof
(
float
);
break
;
case
'd'
:
size
=
sizeof
(
double
);
break
;
}
break
;
case
'@'
:
{
...
...
@@ -90,6 +94,12 @@ int mp_binary_get_size(char struct_type, char val_type, mp_uint_t *palign) {
case
'P'
:
case
'O'
:
case
'S'
:
align
=
alignof
(
void
*
);
size
=
sizeof
(
void
*
);
break
;
case
'f'
:
align
=
alignof
(
float
);
size
=
sizeof
(
float
);
break
;
case
'd'
:
align
=
alignof
(
double
);
size
=
sizeof
(
double
);
break
;
}
}
}
...
...
@@ -252,10 +262,10 @@ void mp_binary_set_val_array(char typecode, void *p, mp_uint_t index, mp_obj_t v
switch
(
typecode
)
{
#if MICROPY_PY_BUILTINS_FLOAT
case
'f'
:
((
float
*
)
p
)[
index
]
=
mp_obj_floa
t_ge
t
(
val_in
);
((
float
*
)
p
)[
index
]
=
mp_obj_
get_
float
(
val_in
);
break
;
case
'd'
:
((
double
*
)
p
)[
index
]
=
mp_obj_floa
t_ge
t
(
val_in
);
((
double
*
)
p
)[
index
]
=
mp_obj_
get_
float
(
val_in
);
break
;
#endif
default:
...
...
tests/float/float_array.py
0 → 100644
View file @
c9f8f653
from
array
import
array
def
test
(
a
):
print
(
a
)
a
.
append
(
1.2
)
print
(
len
(
a
),
'%.3f'
%
a
[
0
])
a
.
append
(
1
)
a
.
append
(
False
)
print
(
len
(
a
),
'%.3f %.3f'
%
(
a
[
1
],
a
[
2
]))
a
[
-
1
]
=
3.45
print
(
'%.3f'
%
a
[
-
1
])
test
(
array
(
'f'
))
test
(
array
(
'd'
))
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