Commit graph

40 commits

Author SHA1 Message Date
Adrian Mariano
e0ac4d0c1b Fixed bugs in list_set, list_remove, list_insert that were revealed by
adding degenerate case tests.  List_set was broken for minlen
nonzero (no tests).  Added seed to shuffle.  Fixed bounds check error
in rounded_prism.
2020-12-31 09:32:47 -05:00
Adrian Mariano
a495528398 Fixed bugs in hull_points, added seeds to tests, added seed parm to shuffle() 2020-12-22 18:15:25 -05:00
Adrian Mariano
b82f1b8e5d tweaked vac example in turtle3d
added delete_last() to arrays.scad
added endpoint= option to arc
added tests for last two things
2020-12-12 21:15:33 -05:00
Garth Minette
16ee49e8b2 Fixed a bunch of undef math warnings with dev snapshot OpenSCAD builds. 2020-10-03 19:50:29 -07:00
Garth Minette
e3ccf482fa Make list functions make more sense with strings. 2020-09-28 19:12:07 -07:00
Adrian Mariano
399c40f7a6 Added null_space and diagonal_matrix 2020-09-01 18:38:31 -04:00
Adrian Mariano
3caeeff2cd Added norm_fro, quadratic_roots and pivoting to qr_factor and
linear_solve.  Added tests.
2020-09-01 17:57:31 -04:00
Adrian Mariano
8f6c2e8538 Add submatrix_set and block_matrix and tests 2020-09-01 16:42:47 -04:00
RonaldoCMP
bbe4ad1467 Sort debugging and optimizing
There were bugs in the previous sorting functions. They didn't check the homogeneity of the input list before calling _sort_scalars and _sort_vectors. The bug might result in wrong order and missing list elements in the output.
Besides correcting the bug a recode of all sorting functions result in better performance and a enlargement of their scope. With the new functions, list of vectors of any dimension may be sorted, even with idx given, with the native comparison operators. The scope of indexed sorting is also extended.

The file test_arrays has been extended to check the new funcionality.

New functions:

is_homogeneous - checks if a list has elements of the same type (although not distinguing booleans from numbers) up to a given depth
_sort_vectors - internal function to sort homgeneous lists of vectors using native comparison operators; extends the scope of the previous _sort_vectors# functions with better performance
_lexical_sort - internal function to sort non-homogeneous lists; uses compare_vals
_indexed_sort - internal function to perform indexed sorting of non-homogeneous lists; uses compar_vals

Changed/reviewed functions:
_valid_idx - doesn't requires the input of imin and imax args
sort - explores the internal functions to get better performance and an enlarged scope
sortidx - explores the internal functions to get better performance and an enlarged scope
_sort_general - just for sortings of non-homogeneous lists using compare_vals
_array_dim_recurse - changed for bit better performance

Functions eliminated:
 _sort_vectors1
 _sort_vectors2
 _sort_vectors3
 _sort_vectors4
2020-08-30 12:12:36 +01:00
RonaldoCMP
b6085e0cbc
Exclude echo() 2020-08-11 15:36:44 +01:00
RonaldoCMP
50b0f170e7 Extend the scope of transpose
It allows a transposition in respect to the secondary "diagonal"
2020-08-11 14:55:25 +01:00
RonaldoCMP
1df84f3552 Revert "Extend scope of transpose"
This reverts commit 5ebf1c80b9.
2020-08-11 14:33:42 +01:00
RonaldoCMP
5ebf1c80b9 Extend scope of transpose
Includes an arg to allow transposing in respecto to the secondary "diagonal"
2020-08-11 14:32:25 +01:00
Revar Desmera
c0481f14eb
Merge pull request #229 from adrianVmariano/master
move submatrix to arrays and relax input restrictions
2020-08-04 00:38:23 -07:00
Adrian Mariano
4e36eacca8 Moved submatrix to arrays.scad and relaxed requirement for numerical
input.  Added examples and tests.
2020-08-03 19:49:22 -04:00
RonaldoCMP
c9408a66fa Merge remote-tracking branch 'upstream/master' 2020-08-04 00:13:26 +01:00
Adrian Mariano
06b69475cb Fix bug. Add test for subindex. 2020-08-02 10:38:11 -04:00
RonaldoCMP
526c01109c Minor edits in in_list and transpose, removal of is_simple list 2020-07-31 15:52:35 +01:00
RonaldoCMP
ab57790c27 Correction of is_vector and doc text 2020-07-28 19:02:35 +01:00
RonaldoCMP
c10a8b919d Extensive review of arrays.scad, vectors.scad, common.scad and their regression tests
Here is an extensive review of common.scad, vectors.scad, arrays.scad and their regression test codes. The changes were mostly in input data check and format. Some few functions got more changes either to adapt them to the new asserts or because a better (faster, simpler) code was found.

Another change was moving add_scalar from vectors.scad to arrays.scad. It is in fact an array operation. Some few documentation examples and test codes were added. Some function argument names were changed to keep them consistent with the names they have in other similar functions. That name changes were not as extensive as I would like but it is advisable to favor users.

Most, but not all, changed function codes are followed by a comment with a short summary of the changes done. Those comments always start with:
//***

I can eliminate those comments before a merge is done or in a second round.
2020-07-25 20:27:19 +01:00
RonaldoCMP
bdba4c0821 A broad review of input data check and code format
Some functions were changed for sake of clarity or better performance.
2020-07-24 22:54:34 +01:00
RonaldoCMP
d2e851ae42
Merge branch 'master' into master 2020-07-24 14:47:25 +01:00
RonaldoCMP
464c65ce8c Eliminating tabs 2020-07-24 13:30:19 +01:00
RonaldoCMP
877a07b711 Full review of input data checking, formating and improvement in some functions
Refactorigng of list_set(), list_insert() and list_remove() without any sorting and speed gain.

Some argument names changed for consistence between functions.

test_array() updated.
2020-07-24 00:19:49 +01:00
Adrian Mariano
7eafa691b4 Changed to relative include names 2020-07-21 20:05:21 -04:00
Adrian Mariano
a73ca6368c fixed in_list bug 2020-07-21 19:55:05 -04:00
Garth Minette
ed0a3e3e7b Added regressions for set functions and force_list() 2020-07-03 15:23:03 -07:00
Revar Desmera
53c1e25395 Standardize indention on spaces, not tabs. 2020-05-29 19:04:34 -07:00
Revar Desmera
6183e6d0d2 Added deduplicate_indexed() 2020-03-24 14:51:37 -07:00
Revar Desmera
19ed457e38 Regressions for repeat() fixed. 2020-03-04 20:29:17 -08:00
Revar Desmera
68260afebb Added regressions for permute() and repeat_entries() 2020-01-16 13:01:41 -08:00
Revar Desmera
c05b6bfa5c Fixed erroneous assertion in list_range() 2019-11-19 18:02:36 -08:00
Revar Desmera
f8f015758a Completed arrays.scad regressions. 2019-11-06 23:40:05 -08:00
Revar Desmera
b0cdbcca0a Added list_rotate() and a bunch of assert()s 2019-10-29 22:42:41 -07:00
Revar Desmera
b0caccebe7 Regression test fixes. 2019-10-23 22:49:40 -07:00
Revar Desmera
28bf2116ec Added a bunch of regression tests. 2019-10-22 17:10:04 -07:00
Revar Desmera
dba2edc984 Fixed transpose for vectors and non-array lists 2019-05-12 12:51:58 -07:00
Revar Desmera
78e3cd3c27 matrix_transpose() generalized to transpose() 2019-05-12 12:32:03 -07:00
Revar Desmera
09e89e9182 Fixed pair() and pair_wrap() 2019-05-10 02:59:12 -07:00
Revar Desmera
3a71633f7f Bugfixes for hull.scad 2019-04-30 23:45:05 -07:00