| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The most specific version of `gcd(int,int)` in `std/math` uses bitwise
comparisons from C compilers, which can't be borrowed on the js platform
in the web browser. Conditional compilation here should fix the issue
for this and downstream libraries such as `std/rationals` when compiling
to browser js as the backend.
---------
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fixes #22798
Per
https://stackoverflow.com/questions/33675638/gcc-link-the-math-library-by-default-in-c-on-mac-os-x
and
https://stackoverflow.com/questions/30694042/c-std-library-dont-appear-to-be-linked-in-object-file
> There's no separate math library on OSX. While a lot of systems ship
functions in the standard C math.h header in a separate math library,
OSX does not do that, it's part of the libSystem library, which is
always linked in.
required by https://github.com/nim-lang/Nim/pull/23290
|
|
|
|
| |
By using the existing isNaN function we can make std/math's classify
function work even if `--passc:-fast-math` is used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
why ?
- We already have an emit that does the same thing
- The name asm itself is a bit confusing, you might think it's an alias
for asm.js or something else.
- The asm keyword is used differently on different compiler targets (it
makes it inexpressive).
- Does anyone (other than some compiler libraries) use asm instead of
emit ? If yes, it's a bit strange to use asm somewhere and emit
somewhere. By making the asm keyword for js target deprecated, there
would be even less use of the asm keyword for js target, reducing the
amount of confusion.
- New users might accidentally use a non-universal approach via the asm
keyword instead of emit, and then when they learn about asm, try to
figure out what the differences are.
see https://forum.nim-lang.org/t/10821
---------
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
| |
follow up https://github.com/nim-lang/Nim/pull/22851
follow up https://github.com/nim-lang/Nim/pull/22873
|
|
|
|
|
|
|
| |
* Add Overflow checks & test adjust
* Avoiding nimvm differences in tests
* distinguish DivByZeroDefect
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Adding divmod
* Adding support to VM
* Wrapped C structs and funcs
* Fix javascript impl
* Fixing struct compat
* Segregate tests, better compiletime defs
* Using `inline` and switch back to `func`
* Apply suggestions from code review
* Explicit structures
---------
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
|
|
|
| |
* enable checks for sum, prod, cumsummed and cumsum
* fixes #21792
* add test cases
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* stdlib organization & documentation improvements
* fix CI
* Update doc/lib.md
Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>
* fix ci, remove jshttpcore, export in jsfetch instead
* fix alphabetical order violations
* add cmdline, db_odbc
Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>
|
| |
|
|
|
|
|
|
|
| |
* Remove Deprecated math proc
* Remove Deprecated math proc
* Remove Deprecated math proc
|
|
|
|
|
|
| |
* Use assert in runnableExamples and improve boundary check
* Add more tests for ceilDiv
* Fix comment in ceilDiv
* Calling ceilDiv with int type T such like sizeof(T) > 8 is error
|
|
|
| |
the var exp was typed as int32 - it should be int since frep expects an int
|
|
|
|
|
|
|
|
| |
* CIs: attempt to use csources_v1
* also updated the BSDs
* also updated azure pipelines
* std modules should not itself use the 'std/' import dir...
* compiler has to be careful with std/ for v1 booting
|
|
|
|
|
| |
This example seems to break our 32-bit nightlies builds.
This is just a temporary solution (TM) until we figure out a better one.
|
|
|
|
|
|
|
| |
* Fix #17017
Add more test cases
* USe signbit in example
|
| |
|
|
|
| |
Co-authored-by: flywind <xzsflywind@gmail.com>
|
|
|
|
|
|
|
| |
* Added math.clamp for slice clamping
* Added inline to math.clamp
* Cleaned up math.clamp + test
|
|
|
|
|
|
| |
* make copySign work more robustly in js
* improve tests
* improve tests/vm/tcastint.nim
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Improve documentation for math
Support empty input for cumsummed
Use runnableExamples
Move some examples to tests
Add more tests
* Update tests/stdlib/tmath.nim
Move some tests to trandom.nim
Move tests into main template where possible
Add test for #17017
* Add more tests for gamma & lgamma
Remove gamma(-1.0) example
Small fixes/changes
* Move more tests into template main()
* Fix typos
* Add edge case examples for copySign
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix #9125
* Update tests/stdlib/tmath.nim
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
* back
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
|
|
|
|
|
| |
* add math.copySign
* fix + tests
|
|
|
|
|
|
|
|
| |
* add `euclDiv` and `euclMod` to `math`
* use abs
* Update lib/pure/math.nim
Co-authored-by: Clyybber <darkmine956@gmail.com>
|
|
|
|
|
| |
* fix #16428 vmops now works for generic procs
* remove duplication
|
| |
|
|
|
|
|
|
|
| |
* add math.isNaN
* isNaN now works with --passc:-ffast-math; tests
* Update lib/pure/math.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
|
|
|
|
|
|
|
| |
* math.nim: procs with {.noSideEffect} -> funcs
* math.nim: procs without {.noSideEffect.} -> funcs
* math.nim: proc -> func in links
* math.nim: proc -> func in doc comments
* test: add `math` to strictFuncs test
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* move tests to testament
* minor
* fix random
* disable test random
|
|
|
|
|
|
|
|
|
| |
(#15900)
* original docs are wrong
* fix pathnorm
* Update lib/pure/pathnorm.nim
Co-authored-by: Juan Carlos <juancarlospaco@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add approxequal
* Address review comments, tests that pass
* more wikipedia links [ci skip]
* forgot since
Co-authored-by: b3liever <b3liever@yandex.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
| |
|
| |
|
|
|
|
|
|
|
| |
* update to the latest Jester
* remove deprecated procs from some stdlib modules
* 'criterion' is not maintained anymore and relies on obsolete stuff
|
|
|
|
| |
* move since from inclrtl to std/private/since
* move since import in system below for HCR
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Error -> Defect for defects
The distinction between Error and Defect is subjective,
context-dependent and somewhat arbitrary, so when looking at an
exception, it's hard to guess what it is - this happens often when
looking at a `raises` list _without_ opening the corresponding
definition and digging through layers of inheritance.
With the help of a little consistency in naming, it's at least possible
to start disentangling the two error types and the standard lib can set
a good example here.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* Fix classify to test for subnormality.
* Minor fix.
* Modified to maintain existing API.
* Minor change.
* Removed 32-bit case since float is always 64-bit.
|
|
|
|
|
| |
This fixes some tiny issues with using Nim on 16-bit platforms. Not
entirely sure why the AVR chip I was compiling for with "cpu = avr" was
detected as 16-bit, but that's probably another issue..
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Fix many broken links
Note that contrary to what docgen.rst currently says, the ids have
to match exactly or else most web browsers will not jump to the
intended symbol.
* Prefer relative links for Nim documentation
This is more friendly to those browsing the documentation without
a network connection. The nim-doc package in Debian allows this,
for example.
Also, the domain name being used was not consistent. It could have
been either nim-lang.org or nim-lang.github.io, and those reading
the stable docs could have found themselves suddenly reading the
devel docs instead.
* koch.rst: remove link to nonexistent section
* manual.rst: remove unintended link
cast[T](0) is interpreted as a link to id 0 with text T, so escape
the opening parentheses to display the intended output.
* asyncstreams: replace unintended link with emphasis
* Fix word wrapping
|