## Bug #13262

### Docs of core classes (Math and others) are shadowed by mathn.rb docs

**Description**

The deprecated (#10169) mathn library leaks documentation into some core classes, or even replaces it (see example further down).

I would like to fix this, but I could need some ideas what would be the best way to do that. The problem is that mathn is not a module/class which could have it's own docs, but only modifies core classes.

Should I:

- simply comment out the rdoc?
- add sections/paragraphs directly to the affected core classes, at the appropriate place?
- can
`ri mathn`

be made to work somehow (documentation for a source file)? - ...?

Example: Math.sqrt

$ ri Math::sqrt (from ruby site) ------------------------------------------------------------------------------ sqrt(a) ------------------------------------------------------------------------------ Computes the square root of a. It makes use of Complex and Rational to have no rounding errors if possible. Math.sqrt(4/9) # => 2/3 Math.sqrt(- 4/9) # => Complex(0, 2/3) Math.sqrt(4.0/9.0) # => 0.666666666666667

That's **not** the standard behavior of Math.sqrt and neither the documentation that is provided in `math.c`

; these are the docs provided in `lib/mathn.rb`

, corresponding to the behavior after `require "mathn"`

.

Also affected:

- class documentation of Integer (mathn docs are added at some unspecified place
__before__the proper docs, https://docs.ruby-lang.org/en/trunk/Integer.html) - ditto for Math (https://docs.ruby-lang.org/en/trunk/Math.html)
- ditto for Object (shows the general description of mathn: https://docs.ruby-lang.org/en/trunk/Object.html#method-i-unknown-label-mathn)
~~internal~~(r57744)`Math.rsqrt`

method documented publicly

### History

#### Updated by stomar (Marcus Stollsteimer) about 2 years ago

**Description**updated (diff)

#### Updated by shevegen (Robert A. Heiler) about 2 years ago

Very interesting find. I would not have thought that this is a possibility.

May I ask how you did discover this?

#### Updated by stomar (Marcus Stollsteimer) about 2 years ago

I first stumbled upon it when doing `ri Integer`

(before the proper documentation there appear snippets introduced by BigDecimal, OpenSSL (both fixed upstream now), and mathn), and then also noticed in the context of #13219 that `ri Math.sqrt`

does not match the actual behavior.

#### Updated by stomar (Marcus Stollsteimer) about 2 years ago

**Status**changed from*Open*to*Closed*

Closing. Fixed with r58432 (removing of mathn).