ln1p
Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.2See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20) > 0.0 is ${ln1p(1e-20) > 0.0}") // true
println(ln1p(1e-20))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20 + 1.0)) // 0.0
// Special cases
println(ln1p(Double.NaN)) // NaN
println(ln1p(-2.0)) // NaN
println(ln1p(-1.0)) // -Infinity
println(ln1p(Double.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.2See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20f) > 0.0f is ${ln1p(1e-20f) > 0.0f}") // true
println(ln1p(1e-20f))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20f + 1.0f)) // 0.0
// Special cases
println(ln1p(Float.NaN)) // NaN
println(ln1p(-2.0f)) // NaN
println(ln1p(-1.0f)) // -Infinity
println(ln1p(Float.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.2See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20) > 0.0 is ${ln1p(1e-20) > 0.0}") // true
println(ln1p(1e-20))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20 + 1.0)) // 0.0
// Special cases
println(ln1p(Double.NaN)) // NaN
println(ln1p(-2.0)) // NaN
println(ln1p(-1.0)) // -Infinity
println(ln1p(Double.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.2See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20f) > 0.0f is ${ln1p(1e-20f) > 0.0f}") // true
println(ln1p(1e-20f))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20f + 1.0f)) // 0.0
// Special cases
println(ln1p(Float.NaN)) // NaN
println(ln1p(-2.0f)) // NaN
println(ln1p(-1.0f)) // -Infinity
println(ln1p(Float.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.2See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20) > 0.0 is ${ln1p(1e-20) > 0.0}") // true
println(ln1p(1e-20))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20 + 1.0)) // 0.0
// Special cases
println(ln1p(Double.NaN)) // NaN
println(ln1p(-2.0)) // NaN
println(ln1p(-1.0)) // -Infinity
println(ln1p(Double.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.2See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20f) > 0.0f is ${ln1p(1e-20f) > 0.0f}") // true
println(ln1p(1e-20f))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20f + 1.0f)) // 0.0
// Special cases
println(ln1p(Float.NaN)) // NaN
println(ln1p(-2.0f)) // NaN
println(ln1p(-1.0f)) // -Infinity
println(ln1p(Float.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.3See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20) > 0.0 is ${ln1p(1e-20) > 0.0}") // true
println(ln1p(1e-20))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20 + 1.0)) // 0.0
// Special cases
println(ln1p(Double.NaN)) // NaN
println(ln1p(-2.0)) // NaN
println(ln1p(-1.0)) // -Infinity
println(ln1p(Double.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.3See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20f) > 0.0f is ${ln1p(1e-20f) > 0.0f}") // true
println(ln1p(1e-20f))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20f + 1.0f)) // 0.0
// Special cases
println(ln1p(Float.NaN)) // NaN
println(ln1p(-2.0f)) // NaN
println(ln1p(-1.0f)) // -Infinity
println(ln1p(Float.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.8See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20) > 0.0 is ${ln1p(1e-20) > 0.0}") // true
println(ln1p(1e-20))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20 + 1.0)) // 0.0
// Special cases
println(ln1p(Double.NaN)) // NaN
println(ln1p(-2.0)) // NaN
println(ln1p(-1.0)) // -Infinity
println(ln1p(Double.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(a + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.8See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20f) > 0.0f is ${ln1p(1e-20f) > 0.0f}") // true
println(ln1p(1e-20f))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20f + 1.0f)) // 0.0
// Special cases
println(ln1p(Float.NaN)) // NaN
println(ln1p(-2.0f)) // NaN
println(ln1p(-1.0f)) // -Infinity
println(ln1p(Float.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(x + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.8See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20) > 0.0 is ${ln1p(1e-20) > 0.0}") // true
println(ln1p(1e-20))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20 + 1.0)) // 0.0
// Special cases
println(ln1p(Double.NaN)) // NaN
println(ln1p(-2.0)) // NaN
println(ln1p(-1.0)) // -Infinity
println(ln1p(Double.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}Computes ln(a + 1).
This function can be implemented to produce more precise result for x near zero.
Special cases:
ln1p(NaN)isNaNln1p(x)isNaNwherex < -1.0ln1p(-1.0)is-Infln1p(+Inf)is+Inf
Since Kotlin
1.8See also
Samples
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// ln1p has better precision for arguments close to zero
println("ln1p(1e-20f) > 0.0f is ${ln1p(1e-20f) > 0.0f}") // true
println(ln1p(1e-20f))
// compared to adding 1.0 to a value and passing it to ln
println(ln(1e-20f + 1.0f)) // 0.0
// Special cases
println(ln1p(Float.NaN)) // NaN
println(ln1p(-2.0f)) // NaN
println(ln1p(-1.0f)) // -Infinity
println(ln1p(Float.POSITIVE_INFINITY)) // Infinity
//sampleEnd
}