compiler: build separation runtime with clite
This commit is contained in:
151
runtime/internal/clite/math/cmplx/complex.go
Normal file
151
runtime/internal/clite/math/cmplx/complex.go
Normal file
@@ -0,0 +1,151 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package cmplx
|
||||
|
||||
import (
|
||||
_ "unsafe"
|
||||
)
|
||||
|
||||
const (
|
||||
LLGoPackage = "decl"
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
//go:linkname Abs C.cabs
|
||||
func Abs(z complex128) float64
|
||||
|
||||
//go:linkname Acos C.cacos
|
||||
func Acos(z complex128) complex128
|
||||
|
||||
//go:linkname Acosh C.cacosh
|
||||
func Acosh(z complex128) complex128
|
||||
|
||||
//go:linkname Asin C.casin
|
||||
func Asin(z complex128) complex128
|
||||
|
||||
//go:linkname Asinh C.casinh
|
||||
func Asinh(z complex128) complex128
|
||||
|
||||
//go:linkname Atan C.catan
|
||||
func Atan(z complex128) complex128
|
||||
|
||||
//go:linkname Atanh C.catanh
|
||||
func Atanh(z complex128) complex128
|
||||
|
||||
//go:linkname Cos C.ccos
|
||||
func Cos(z complex128) complex128
|
||||
|
||||
//go:linkname Cosh C.ccosh
|
||||
func Cosh(z complex128) complex128
|
||||
|
||||
//go:linkname Exp C.cexp
|
||||
func Exp(z complex128) complex128
|
||||
|
||||
//go:linkname Log C.clog
|
||||
func Log(z complex128) complex128
|
||||
|
||||
//go:linkname Log10 C.clog10
|
||||
func Log10(z complex128) complex128
|
||||
|
||||
//go:linkname Arg C.carg
|
||||
func Arg(z complex128) float64
|
||||
|
||||
//go:linkname Phase C.carg
|
||||
func Phase(z complex128) float64
|
||||
|
||||
//go:linkname Pow C.cpow
|
||||
func Pow(x, y complex128) complex128
|
||||
|
||||
//go:linkname Sin C.csin
|
||||
func Sin(z complex128) complex128
|
||||
|
||||
//go:linkname Sinh C.csinh
|
||||
func Sinh(z complex128) complex128
|
||||
|
||||
//go:linkname Sqrt C.csqrt
|
||||
func Sqrt(z complex128) complex128
|
||||
|
||||
//go:linkname Tan C.ctan
|
||||
func Tan(z complex128) complex128
|
||||
|
||||
//go:linkname Tanh C.ctanh
|
||||
func Tanh(z complex128) complex128
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
//go:linkname Absf C.cabsf
|
||||
func Absf(z complex64) float32
|
||||
|
||||
//go:linkname Acosf C.cacosf
|
||||
func Acosf(z complex64) complex64
|
||||
|
||||
//go:linkname Acoshf C.cacoshf
|
||||
func Acoshf(z complex64) complex64
|
||||
|
||||
//go:linkname Asinf C.casinf
|
||||
func Asinf(z complex64) complex64
|
||||
|
||||
//go:linkname Asinhf C.casinhf
|
||||
func Asinhf(z complex64) complex64
|
||||
|
||||
//go:linkname Atanf C.catanf
|
||||
func Atanf(z complex64) complex64
|
||||
|
||||
//go:linkname Atanhf C.catanhf
|
||||
func Atanhf(z complex64) complex64
|
||||
|
||||
//go:linkname Cosf C.ccosf
|
||||
func Cosf(z complex64) complex64
|
||||
|
||||
//go:linkname Coshf C.ccoshf
|
||||
func Coshf(z complex64) complex64
|
||||
|
||||
//go:linkname Expf C.cexpf
|
||||
func Expf(z complex64) complex64
|
||||
|
||||
//go:linkname Logf C.clogf
|
||||
func Logf(z complex64) complex64
|
||||
|
||||
//go:linkname Log10f C.clog10f
|
||||
func Log10f(z complex64) complex64
|
||||
|
||||
//go:linkname Argf C.cargf
|
||||
func Argf(z complex64) float32
|
||||
|
||||
//go:linkname Phasef C.cargf
|
||||
func Phasef(z complex64) float32
|
||||
|
||||
//go:linkname Powf C.cpowf
|
||||
func Powf(x, y complex64) complex64
|
||||
|
||||
//go:linkname Sinf C.csinf
|
||||
func Sinf(z complex64) complex64
|
||||
|
||||
//go:linkname Sinhf C.csinhf
|
||||
func Sinhf(z complex64) complex64
|
||||
|
||||
//go:linkname Sqrtf C.csqrtf
|
||||
func Sqrtf(z complex64) complex64
|
||||
|
||||
//go:linkname Tanf C.ctanf
|
||||
func Tanf(z complex64) complex64
|
||||
|
||||
//go:linkname Tanhf C.ctanhf
|
||||
func Tanhf(z complex64) complex64
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
333
runtime/internal/clite/math/math.go
Normal file
333
runtime/internal/clite/math/math.go
Normal file
@@ -0,0 +1,333 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package math
|
||||
|
||||
import (
|
||||
_ "unsafe"
|
||||
|
||||
c "github.com/goplus/llgo/runtime/internal/clite"
|
||||
)
|
||||
|
||||
const (
|
||||
LLGoPackage = "decl"
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
//go:linkname Acos C.acos
|
||||
func Acos(x float64) float64
|
||||
|
||||
//go:linkname Acosh C.acosh
|
||||
func Acosh(x float64) float64
|
||||
|
||||
//go:linkname Asin C.asin
|
||||
func Asin(x float64) float64
|
||||
|
||||
//go:linkname Asinh C.asinh
|
||||
func Asinh(x float64) float64
|
||||
|
||||
//go:linkname Atan C.atan
|
||||
func Atan(x float64) float64
|
||||
|
||||
//go:linkname Atan2 C.atan2
|
||||
func Atan2(y, x float64) float64
|
||||
|
||||
//go:linkname Atanh C.atanh
|
||||
func Atanh(x float64) float64
|
||||
|
||||
//go:linkname Cbrt C.cbrt
|
||||
func Cbrt(x float64) float64
|
||||
|
||||
//go:linkname Ceil C.ceil
|
||||
func Ceil(x float64) float64
|
||||
|
||||
//go:linkname Cos C.cos
|
||||
func Cos(x float64) float64
|
||||
|
||||
//go:linkname Cosh C.cosh
|
||||
func Cosh(x float64) float64
|
||||
|
||||
//go:linkname Copysign C.copysign
|
||||
func Copysign(x, y float64) float64
|
||||
|
||||
//go:linkname Erf C.erf
|
||||
func Erf(x float64) float64
|
||||
|
||||
//go:linkname Erfc C.erfc
|
||||
func Erfc(x float64) float64
|
||||
|
||||
//go:linkname Exp C.exp
|
||||
func Exp(x float64) float64
|
||||
|
||||
//go:linkname Exp2 C.exp2
|
||||
func Exp2(x float64) float64
|
||||
|
||||
//go:linkname Expm1 C.expm1
|
||||
func Expm1(x float64) float64
|
||||
|
||||
//go:linkname Fdim C.fdim
|
||||
func Fdim(x, y float64) float64
|
||||
|
||||
//go:linkname Floor C.floor
|
||||
func Floor(x float64) float64
|
||||
|
||||
//go:linkname Fma C.fma
|
||||
func Fma(x, y, z float64) float64
|
||||
|
||||
//go:linkname Fmax C.fmax
|
||||
func Fmax(x, y float64) float64
|
||||
|
||||
//go:linkname Fmin C.fmin
|
||||
func Fmin(x, y float64) float64
|
||||
|
||||
//go:linkname Fmod C.fmod
|
||||
func Fmod(x, y float64) float64
|
||||
|
||||
//go:linkname Frexp C.frexp
|
||||
func Frexp(x float64, exp *c.Int) float64
|
||||
|
||||
//go:linkname Gamma C.gamma
|
||||
func Gamma(x float64) float64
|
||||
|
||||
//go:linkname Hypot C.hypot
|
||||
func Hypot(x, y float64) float64
|
||||
|
||||
//go:linkname Ilogb C.ilogb
|
||||
func Ilogb(x float64) c.Int
|
||||
|
||||
//go:linkname J0 C.j0
|
||||
func J0(x float64) float64
|
||||
|
||||
//go:linkname J1 C.j1
|
||||
func J1(x float64) float64
|
||||
|
||||
//go:linkname Jn C.jn
|
||||
func Jn(n c.Int, x float64) float64
|
||||
|
||||
//go:linkname Ldexp C.ldexp
|
||||
func Ldexp(x float64, exp c.Int) float64
|
||||
|
||||
//go:linkname Lgamma C.lgamma
|
||||
func Lgamma(x float64) float64
|
||||
|
||||
//go:linkname Log C.log
|
||||
func Log(x float64) float64
|
||||
|
||||
//go:linkname Log10 C.log10
|
||||
func Log10(x float64) float64
|
||||
|
||||
//go:linkname Log1p C.log1p
|
||||
func Log1p(x float64) float64
|
||||
|
||||
//go:linkname Log2 C.log2
|
||||
func Log2(x float64) float64
|
||||
|
||||
//go:linkname Logb C.logb
|
||||
func Logb(x float64) float64
|
||||
|
||||
//go:linkname Modf C.modf
|
||||
func Modf(x float64, ipart *float64) float64
|
||||
|
||||
//go:linkname Nan C.nan
|
||||
func Nan(tag *c.Char) float64
|
||||
|
||||
//go:linkname Nextafter C.nextafter
|
||||
func Nextafter(x, y float64) float64
|
||||
|
||||
//go:linkname Pow C.pow
|
||||
func Pow(x, y float64) float64
|
||||
|
||||
//go:linkname Remainder C.remainder
|
||||
func Remainder(x, y float64) float64
|
||||
|
||||
//go:linkname Round C.round
|
||||
func Round(x float64) float64
|
||||
|
||||
//go:linkname Sin C.sin
|
||||
func Sin(x float64) float64
|
||||
|
||||
//go:linkname Sinh C.sinh
|
||||
func Sinh(x float64) float64
|
||||
|
||||
//go:linkname Sqrt C.sqrt
|
||||
func Sqrt(x float64) float64
|
||||
|
||||
//go:linkname Tan C.tan
|
||||
func Tan(x float64) float64
|
||||
|
||||
//go:linkname Tanh C.tanh
|
||||
func Tanh(x float64) float64
|
||||
|
||||
//go:linkname Tgamma C.tgamma
|
||||
func Tgamma(x float64) float64
|
||||
|
||||
//go:linkname Trunc C.trunc
|
||||
func Trunc(x float64) float64
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
//go:linkname Acosf C.acosf
|
||||
func Acosf(x float32) float32
|
||||
|
||||
//go:linkname Acoshf C.acoshf
|
||||
func Acoshf(x float32) float32
|
||||
|
||||
//go:linkname Asinf C.asinf
|
||||
func Asinf(x float32) float32
|
||||
|
||||
//go:linkname Asinhf C.asinhf
|
||||
func Asinhf(x float32) float32
|
||||
|
||||
//go:linkname Atanf C.atanf
|
||||
func Atanf(x float32) float32
|
||||
|
||||
//go:linkname Atan2f C.atan2f
|
||||
func Atan2f(y, x float32) float32
|
||||
|
||||
//go:linkname Atanhf C.atanhf
|
||||
func Atanhf(x float32) float32
|
||||
|
||||
//go:linkname Cbrtf C.cbrtf
|
||||
func Cbrtf(x float32) float32
|
||||
|
||||
//go:linkname Ceilf C.ceilf
|
||||
func Ceilf(x float32) float32
|
||||
|
||||
//go:linkname Cosf C.cosf
|
||||
func Cosf(x float32) float32
|
||||
|
||||
//go:linkname Coshf C.coshf
|
||||
func Coshf(x float32) float32
|
||||
|
||||
//go:linkname Copysignf C.copysignf
|
||||
func Copysignf(x, y float32) float32
|
||||
|
||||
//go:linkname Erff C.erff
|
||||
func Erff(x float32) float32
|
||||
|
||||
//go:linkname Erfcf C.erfcf
|
||||
func Erfcf(x float32) float32
|
||||
|
||||
//go:linkname Expf C.expf
|
||||
func Expf(x float32) float32
|
||||
|
||||
//go:linkname Exp2f C.exp2f
|
||||
func Exp2f(x float32) float32
|
||||
|
||||
//go:linkname Expm1f C.expm1f
|
||||
func Expm1f(x float32) float32
|
||||
|
||||
//go:linkname Fdimf C.fdimf
|
||||
func Fdimf(x, y float32) float32
|
||||
|
||||
//go:linkname Floorf C.floorf
|
||||
func Floorf(x float32) float32
|
||||
|
||||
//go:linkname Fmaf C.fmaf
|
||||
func Fmaf(x, y, z float32) float32
|
||||
|
||||
//go:linkname Fmaxf C.fmaxf
|
||||
func Fmaxf(x, y float32) float32
|
||||
|
||||
//go:linkname Fminf C.fminf
|
||||
func Fminf(x, y float32) float32
|
||||
|
||||
//go:linkname Fmodf C.fmodf
|
||||
func Fmodf(x, y float32) float32
|
||||
|
||||
//go:linkname Frexpf C.frexpf
|
||||
func Frexpf(x float32, exp *c.Int) float32
|
||||
|
||||
//go:linkname Gammaf C.gammaf
|
||||
func Gammaf(x float32) float32
|
||||
|
||||
//go:linkname Hypotf C.hypotf
|
||||
func Hypotf(x, y float32) float32
|
||||
|
||||
//go:linkname Ilogbf C.ilogbf
|
||||
func Ilogbf(x float32) c.Int
|
||||
|
||||
//go:linkname J0f C.j0f
|
||||
func J0f(x float32) float32
|
||||
|
||||
//go:linkname J1f C.j1f
|
||||
func J1f(x float32) float32
|
||||
|
||||
//go:linkname Jnf C.jnf
|
||||
func Jnf(n c.Int, x float32) float32
|
||||
|
||||
//go:linkname Ldexpf C.ldexpf
|
||||
func Ldexpf(x float32, exp c.Int) float32
|
||||
|
||||
//go:linkname Lgammaf C.lgammaf
|
||||
func Lgammaf(x float32) float32
|
||||
|
||||
//go:linkname Logf C.logf
|
||||
func Logf(x float32) float32
|
||||
|
||||
//go:linkname Log10f C.log10f
|
||||
func Log10f(x float32) float32
|
||||
|
||||
//go:linkname Log1pf C.log1pf
|
||||
func Log1pf(x float32) float32
|
||||
|
||||
//go:linkname Log2f C.log2f
|
||||
func Log2f(x float32) float32
|
||||
|
||||
//go:linkname Logbf C.logbf
|
||||
func Logbf(x float32) float32
|
||||
|
||||
//go:linkname Modff C.modff
|
||||
func Modff(x float32, ipart *float32) float32
|
||||
|
||||
//go:linkname Nanf C.nanf
|
||||
func Nanf(tag *c.Char) float32
|
||||
|
||||
//go:linkname Nextafterf C.nextafterf
|
||||
func Nextafterf(x, y float32) float32
|
||||
|
||||
//go:linkname Powf C.powf
|
||||
func Powf(x, y float32) float32
|
||||
|
||||
//go:linkname Remainderf C.remainderf
|
||||
func Remainderf(x, y float32) float32
|
||||
|
||||
//go:linkname Roundf C.roundf
|
||||
func Roundf(x float32) float32
|
||||
|
||||
//go:linkname Sinf C.sinf
|
||||
func Sinf(x float32) float32
|
||||
|
||||
//go:linkname Sinhf C.sinhf
|
||||
func Sinhf(x float32) float32
|
||||
|
||||
//go:linkname Sqrtf C.sqrtf
|
||||
func Sqrtf(x float32) float32
|
||||
|
||||
//go:linkname Tanf C.tanf
|
||||
func Tanf(x float32) float32
|
||||
|
||||
//go:linkname Tanhf C.tanhf
|
||||
func Tanhf(x float32) float32
|
||||
|
||||
//go:linkname Tgammaf C.tgammaf
|
||||
func Tgammaf(x float32) float32
|
||||
|
||||
//go:linkname Truncf C.truncf
|
||||
func Truncf(x float32) float32
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
54
runtime/internal/clite/math/rand/rand.go
Normal file
54
runtime/internal/clite/math/rand/rand.go
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package rand
|
||||
|
||||
import (
|
||||
_ "unsafe"
|
||||
|
||||
c "github.com/goplus/llgo/runtime/internal/clite"
|
||||
)
|
||||
|
||||
const (
|
||||
LLGoPackage = "decl"
|
||||
)
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
//go:linkname Rand C.rand
|
||||
func Rand() c.Int
|
||||
|
||||
//go:linkname RandR C.rand_r
|
||||
func RandR(*c.Uint) c.Int
|
||||
|
||||
//go:linkname Srand C.srand
|
||||
func Srand(c.Uint)
|
||||
|
||||
//go:linkname Sranddev C.sranddev
|
||||
func Sranddev()
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
//go:linkname Random C.random
|
||||
func Random() c.Long
|
||||
|
||||
//go:linkname Srandom C.srandom
|
||||
func Srandom(c.Uint)
|
||||
|
||||
//go:linkname Srandomdev C.srandomdev
|
||||
func Srandomdev()
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user