Commit graph

220 commits

Author SHA1 Message Date
Adrian Mariano
817bdffdef Removed bogus median function 2020-08-02 01:20:11 -04:00
RonaldoCMP
764420e71d Minor edits in is_matrix 2020-08-02 01:15:07 +01:00
RonaldoCMP
84fa648dc5 Revert "Minor is_matrix definition and format"
This reverts commit 2da259c2cc.
2020-08-02 01:08:24 +01:00
RonaldoCMP
afb236f084
Merge branch 'master' into master 2020-08-02 01:03:46 +01:00
RonaldoCMP
2da259c2cc Minor is_matrix definition and format 2020-08-02 00:47:22 +01:00
RonaldoCMP
e858d5627e Merge remote-tracking branch 'upstream/revarbat_dev' 2020-08-02 00:03:05 +01:00
Adrian Mariano
046266778c improved back_substitute, cleaned up a few other functions, removed
some non-breaking space characters.
2020-07-30 20:46:19 -04:00
RonaldoCMP
5c239187e9 removal of duplicate definitions 2020-07-31 00:57:52 +01:00
Garth Minette
aa0e77b1f4 Minor fixes for PR #216 2020-07-29 21:58:12 -07:00
Revar Desmera
5e98cbf679
Merge pull request #216 from RonaldoCMP/master
Extensive changes in arrays.scad, vectors.scad, common.scad and their regression test codes
2020-07-29 21:44:39 -07:00
RonaldoCMP
8a25764744 Overall review, input data check, format, new function definitions
New function definitions in commom.scad:
1. valid_range;
2. _list_pattern

New function definitions in math.scad:
1. binomial;
2. binomial_coefficient;
3. convolve;

Code review in math:
1. sum;
2. median;
3. is_matrix;
4. approx;
5. count_true;
6. doc of deriv2;
7. polynomial;
8. poly_mult;
9; poly_div;
10. _poly_trim

Code change in test_common:
1. new test_valid_range;
2. test_is_consistent

Code change in test_math:
1. test_approx;
2. new test_convolve;
3. new test_binomial;
4. new test_binomial_coefficient;
5. test_outer_product;
6. test_polynomial;
7. test_poly_mult;
8. test_poly_div;
9. test_poly_add;
2020-07-29 22:41:02 +01:00
RonaldoCMP
babc10d60d Revert "input checks in math and new function definitions"
This reverts commit 19e5a9504a.
2020-07-29 21:50:22 +01:00
RonaldoCMP
19e5a9504a input checks in math and new function definitions 2020-07-29 21:49:15 +01:00
RonaldoCMP
ec4d960ecb Revert "input checks, general review, adding new functions"
This reverts commit 51be74b5ec.
2020-07-29 15:30:57 +01:00
RonaldoCMP
281d945ed7 Revert "update"
This reverts commit d45f289a95.
2020-07-29 15:30:35 +01:00
RonaldoCMP
014eea601d Revert "formating"
This reverts commit f67226a6dd.
2020-07-29 06:52:12 +01:00
RonaldoCMP
f67226a6dd formating 2020-07-29 03:19:01 +01:00
RonaldoCMP
d45f289a95 update 2020-07-28 22:55:21 +01:00
RonaldoCMP
51be74b5ec input checks, general review, adding new functions
Defines functions:
1. binomial()
2. convolve()
3. all_numeric()
4. is_addable()

Input data check in all functions.

Recoding of:
1. cumsum (a non-recursive version)
2. median()
3. count_true() (more efficient version)
4. polynomial functions so that a zero polynomial is represented by [0] and not by []
2020-07-28 22:42:07 +01:00
Garth Minette
b5d465cf1e docs_gen.py now shows more docs errors. 2020-07-27 15:15:34 -07:00
Adrian Mariano
3864f14333 Added error bounds to poly_roots, added poly_div, poly_mult and
poly_add, fixed bugs in factorial.
2020-07-11 12:22:59 -04:00
Revar Desmera
506d3d76a8
Merge pull request #192 from adrianVmariano/master
bug fix for qr_factor in case of zero columns
2020-07-06 19:06:48 -07:00
Adrian Mariano
8fed4dece9 bug fix for qr_factor in case of zero columns 2020-07-06 21:50:50 -04:00
Garth Minette
feba482396 Optimizations for is_vector(), is_matrix(). Added is_finite(). 2020-07-06 18:28:35 -07:00
Revar Desmera
20dfaac113 Bugfix for #182. Added assert_equal() and assert_approx() for regression helpers. 2020-06-20 19:51:58 -07:00
Adrian Mariano
7aab27266f Added polynomial root finding and complex math to math.scad. Changed
path_to_bezier to new algorithm (which uses polynomial roots).  And
updated path_smooth to use the new code.

Also removed extra (?) include<skin.scad> and
include<strings.scad> from rounding.scad and
removed the common $fn=36 that was forced on all the examples.  (May
break something...we'll look at the examples and see.)  I added $fn=36
to some examples.
2020-06-18 17:50:25 -04:00
Adrian Mariano
a5753d7953 Added non-uniform sampling to deriv and uniform option to
path_tangents, and path_segment_lengths.
2020-06-13 22:35:22 -04:00
Adrian Mariano
224555a9ec Speed improvement for sum() in vector and list of vectors case 2020-06-13 20:39:45 -04:00
Revar Desmera
53c1e25395 Standardize indention on spaces, not tabs. 2020-05-29 19:04:34 -07:00
Revar Desmera
a9e72f06da
Merge branch 'master' into master 2020-03-22 21:42:14 -07:00
Revar Desmera
d52c10f03b Improved approx() to handle matrices. 2020-03-22 02:41:47 -07:00
Adrian Mariano
72aae0e42c Expanded sqr() to take lists and removed vsqr() 2020-03-21 09:19:49 -04:00
Adrian Mariano
02ab8ea1d8 bug fix for back_substitute that breaks underdetermined solves in
linear_solve with matrix RHS.
2020-03-17 23:50:57 -04:00
Revar Desmera
b0a57dab7d Tweaked math.scad code formatting. 2020-03-17 19:55:07 -07:00
Revar Desmera
8999338d63
Merge branch 'master' into master 2020-03-17 19:51:36 -07:00
Adrian Mariano
8fc3af0264 modified linear solvers to handle matrix RHS, added error checking to
lerp and affine_frame_map, adde same_shape(), added square option to
is_matrix.
2020-03-17 07:11:25 -04:00
Revar Desmera
3ac23e15e6 Added median() 2020-03-17 01:13:47 -07:00
Adrian Mariano
ee82a8bb97 bug fix qr factorization, removed echo in plane intersection, fixed
bezier_surface so vnf arg is in right order
2020-03-09 21:05:57 -04:00
Adrian Mariano
4722cc0d01 Added is_matrix() and error handling for linear_solve() and qr() 2020-03-06 18:33:53 -05:00
Adrian Mariano
fcbeadc363 renamed replist to repeat
fixed normalization issue in path_to_bezier
2020-03-04 23:22:39 -05:00
Adrian Mariano
51af394c24 Added force_list, path_to_bezier, smooth_path, associate_vertices,
improved skin and sweep error handling.  Allow path_sweep to take a 2d
path.
2020-03-04 20:24:00 -05:00
Adrian Mariano
243dd7723e added is_consistent, added error check to sum(), clarified docs to
is_path, and added fast versions of path2d, path3d and path4d.
2020-03-02 21:39:57 -05:00
Revar Desmera
28114b49b5 Cleaned up code formatting in math.scad. 2020-03-01 15:42:12 -08:00
Adrian Mariano
1e6cf426a9 changed order so linear_solve and submatrix are first. 2020-02-29 22:59:39 -05:00
Adrian Mariano
5bd2cba0ff Added colons to "Function" doc strings 2020-02-29 22:56:24 -05:00
Adrian Mariano
629d1c00b2 Added linear_solve() 2020-02-28 17:40:52 -05:00
Adrian Mariano
f8fc8cb544 Adds sweep and new version of path_sweep to skin.scad, which probably
needs a name change.  Adds apply(), apply_list() and
affine_frame_map() to affine.scad.  Adds derivative calcluation to
math.scad.  Adds path_tangent, path_normal, path_curvature and
path_torsion functions.  Adds path_length_fraction().
Fixed bug in reindex_polygon where it randomly reverses a 3d path (due
to clockwise check that is bogus in 3d) and put a check in
polygon_is_clockwise to trap this case.
2020-02-27 17:32:03 -05:00
Revar Desmera
019961aef7 Added dflt= arg to sum(), defaulting to 0. 2020-02-08 21:54:39 -08:00
Revar Desmera
ba032e2f4d Added NAN, INF, and is_nan(). 2020-02-06 22:51:16 -08:00
Revar Desmera
231bb69634 Fixed bug introduced into sum() when summing lists of vectors. 2020-01-09 14:28:54 -08:00
Revar Desmera
48d30fc686 Reorganize math.scad 2020-01-08 20:43:19 -08:00
Adrian Mariano
29b682be96 Added lcm() and gcd() and is_integer() to math.scad. Added a couple
3d examples for supershape() that I snagged from
list-comprehension-demo.  Added repeat_entries to array.scad.  Note
dependence on _sum_preserving_round which is in paths.scad.  Also note
it's possible _force_list (added to math.scad) should be exposed, or
placed elsewhere.
2019-12-06 19:27:49 -05:00
Revar Desmera
9f92fe8775 Enhanced lerp() to allow list/range u values to return lists of results. 2019-11-18 21:11:38 -08:00
Revar Desmera
5cca83958f gaussian_rand() -> gaussian_rands(), log_rand() -> log_rands() 2019-11-06 22:19:19 -08:00
Revar Desmera
50acb3c0b0 Various bugfixes, optimizations, and docs improvements found via regressions. 2019-10-25 15:16:48 -07:00
Revar Desmera
bbabc641da Removed redundant vquant*() functions. Improved docs." 2019-10-22 17:09:08 -07:00
Revar Desmera
a85ea4ecc9 Added modang() to standardize angles to <-180,180> 2019-09-23 16:38:07 -07:00
Revar Desmera
ccfed6b306 Fixed a typo in det2() docs. 2019-09-19 02:42:42 -07:00
Revar Desmera
e4ecb21217 quant\*() now work on vectors and pointlists. 2019-08-24 11:51:24 -07:00
Revar Desmera
aa8a084d62 Added log2() and cumsum() 2019-08-06 17:12:28 -07:00
Revar Desmera
e8300c5bb6 Fixed indexing of rand_int() 2019-07-18 21:58:41 -07:00
Revar Desmera
56b41b487b Improved compare_vals() and compare_lists() for heterogenous types. 2019-06-24 15:31:59 -07:00
Adrian Mariano
49365add3c Added faster and simpler versions of max_index and min_index. 2019-06-23 13:17:04 -04:00
Revar Desmera
62f913a148 Added rand_ints() and shuffle() 2019-05-29 17:42:09 -07:00
Revar Desmera
aadd189c97 Added det2(), det3(), and determinant() 2019-05-27 17:50:04 -07:00
Revar Desmera
4fb825ce14 Bugfix for deltas() 2019-05-26 23:30:44 -07:00
Revar Desmera
11e5406951 Fixed product() for matrices. 2019-05-12 13:41:26 -07:00
Revar Desmera
ba9b7c5b3b Added product() 2019-05-12 13:32:34 -07:00
Revar Desmera
e946031d99 Added deltas() 2019-05-10 03:00:41 -07:00
Revar Desmera
414f06df86 Fixed scalar approx() 2019-05-04 20:19:35 -07:00
Revar Desmera
55ff7f3a93 Added sqr() and approx() 2019-05-04 20:10:23 -07:00
Revar Desmera
c79e887612 Removed per-file copyright messages in favor of the LICENSE file. 2019-05-03 12:30:20 -07:00
Revar Desmera
cc36235736 Updated copyright years. Split math.scad up. Enabled attach for lots of shapes. Removed backwards compatability. 2019-04-19 17:02:17 -07:00
Revar Desmera
019aae4347 Brought args for rotate_points3d in line with rot() and rotate(). 2019-04-19 11:36:38 -07:00
Revar Desmera
1d6aefc867 Removed all uses and incudes. Document all includes needed for each file. Added std.scad include. 2019-04-19 00:25:10 -07:00
Revar Desmera
a46ea27fca Changed all BOSL references to BOSL2. 2019-04-18 23:45:46 -07:00
Revar Desmera
6b0e796462 Renamed all V_ constants. Removed ALIGN_ constants. 2019-04-18 23:32:17 -07:00
Revar Desmera
08711565e7 Removed deprecations. 2019-04-18 21:16:10 -07:00
Revar Desmera
96739c3ea0 Added convex_hull() 2019-04-16 15:34:54 -07:00
Revar Desmera
fde93d9991 Added PHI constant. 2019-04-12 00:08:56 -07:00
Revar Desmera
54d6ca2bd0 Added gaussian_rand() and log_rand(). 2019-04-10 15:53:40 -07:00
Revar Desmera
b7e3644df3 Fixed compare_vals for lists with single lists. 2019-04-08 20:51:29 -07:00
Revar Desmera
a84dec40fc Fixed rotate_points3d() and vector_axis() for un-normalized co-axial vectors. 2019-04-08 18:49:34 -07:00
Revar Desmera
670c47ca86 Added enumerate() and sortidx() 2019-04-04 20:27:01 -07:00
Revar Desmera
843268e9b8 Fixes for bugs found my math test suite. 2019-04-04 00:37:21 -07:00
Revar Desmera
e435660f11 Fixed recursive comparison of lists. 2019-04-03 13:54:48 -07:00
Revar Desmera
cc37b39344 Added matrix_transpose() 2019-04-02 19:07:13 -07:00
Revar Desmera
6f99eb7925 Fix dropped section header. 2019-04-01 23:44:12 -07:00
Revar Desmera
229b9e1e3c Optimizations to compare_vals() 2019-04-01 23:40:15 -07:00
Revar Desmera
a4c4738f80 Fixed rotate_points3d(from,to) 2019-04-01 18:55:48 -07:00
Revar Desmera
d1a9d98033 Made rotate_points3d() accept axis or from/to args. 2019-03-31 18:43:54 -07:00
Revar Desmera
282207701a Added replist() 2019-03-31 04:06:51 -07:00
Revar Desmera
f3c6fbc593 Commented out top-level variables in math.scad, due to pathological OpenSCAD behavious. 2019-03-31 03:21:07 -07:00
Revar Desmera
d7320b7c0a More select and posmod optimizations. 2019-03-31 00:03:02 -07:00
Revar Desmera
015c34d637 Large optimization to select() 2019-03-30 22:39:44 -07:00
Revar Desmera
f7b79029fa Improved new list_range() 2019-03-29 00:11:46 -07:00
Revar Desmera
ea6df0b816 Added list_range() 2019-03-28 22:25:33 -07:00
Revar Desmera
326dbd47d8 Renamed array_sort() to sort(), added count_true(), simplified any() and all() 2019-03-28 17:46:35 -07:00
Revar Desmera
6f5a990124 Added array_unique(). Renamed quicksort() to array_sort() 2019-03-28 02:55:15 -07:00
Revar Desmera
cdd2989215 Added compare_lists(), compare_vals(), and quicksort() 2019-03-28 02:26:16 -07:00
Revar Desmera
29736a7748 Added array_dim() 2019-03-27 01:59:22 -07:00
Revar Desmera
ad01203a7a Typo fixes. 2019-03-25 04:20:09 -07:00
Revar Desmera
228f4c4134 vector3d_angle -> vector_angle 2019-03-25 03:52:09 -07:00
Revar Desmera
f074c63cf2 Fixing docs for hyperbolic functions. 2019-03-25 03:02:24 -07:00
Revar Desmera
3abf9fa868 Changed any() and all() to test nested lists, and enabled shortcutting via binary recursion. 2019-03-25 02:53:49 -07:00
Revar Desmera
67144218f4 Renamed wrap_range() to select(), and fixed array_zip() 2019-03-25 01:42:08 -07:00
Revar Desmera
9a3c25d3d3 Massive reworking of documentation production. 2019-03-22 21:13:18 -07:00
Revar Desmera
fd2347dc19 Rewrote cyl() to avoid minkowski, and allow use of both fillet and chamfer on opposite ends of the same cylinder. 2019-03-02 11:14:36 -08:00
Revar Desmera
e4837a0b21 Added useful functions for argument handling. 2019-02-27 03:51:19 -08:00
Revar Desmera
fc2a1f5f6d Improved tube(), added cube2pt() 2019-02-24 04:35:40 -08:00
Revar Desmera
86f9c2ead9 Added vmul() 2019-02-11 18:47:07 -08:00
Revar Desmera
54af28d8c4 Added several coordinate system conversion functions. 2019-02-04 19:18:08 -08:00
Revar Desmera
74702b5863 Fixed wrap_range negative index wrapping. 2019-02-04 04:22:36 -08:00
Revar Desmera
f64e16298d Changed lerp() formula to be less susceptible to FP rounding errors. 2018-11-25 15:22:58 -08:00
Revar Desmera
81210a2a95 Added functions to translate, scale, and rotate arrays of 3d points. 2018-11-25 12:49:44 -08:00
Revar Desmera
924392fe79 PI is a thing that exists in OpenSCAD, dangit. 2018-10-09 20:50:27 -07:00
Revar Desmera
924a35188c Fixed crazy FP rounding error in vector3d_angle() 2018-10-09 15:34:26 -07:00
Revar Desmera
844d2101e5 Added triangulation support code. 2018-09-01 02:38:47 -07:00
Revar Desmera
2d9fa565b3 Updated bezier code to support N-point beziers. 2018-02-16 14:49:32 -08:00
Revar Desmera
b3f19b1407 Initial code dump. 2017-08-29 17:00:16 -07:00