mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
35
tests/vm/t18103.nim
Normal file
35
tests/vm/t18103.nim
Normal file
@@ -0,0 +1,35 @@
|
||||
discard """
|
||||
targets: "c cpp"
|
||||
matrix: "--mm:refc; --mm:arc"
|
||||
"""
|
||||
|
||||
import base64, complex, sequtils, math, sugar
|
||||
|
||||
type
|
||||
|
||||
FP = float
|
||||
T = object
|
||||
index: int
|
||||
arg: FP
|
||||
val: Complex[FP]
|
||||
M = object
|
||||
alpha, beta: FP
|
||||
|
||||
func a(s: openArray[T], model: M): seq[T] =
|
||||
let f = (tn: int) => model.alpha + FP(tn) * model.beta;
|
||||
return mapIt s:
|
||||
block:
|
||||
let s = it.val * rect(1.0, - f(it.index))
|
||||
T(index: it.index, arg: phase(s), val: s)
|
||||
|
||||
proc b(): float64 =
|
||||
var s = toSeq(0..10).mapIt(T(index: it, arg: 1.0, val: complex.complex(1.0)))
|
||||
discard a(s, M(alpha: 1, beta: 1))
|
||||
return 1.0
|
||||
|
||||
func cc(str: cstring, offset: ptr[cdouble]): cint {.exportc.} =
|
||||
offset[] = b()
|
||||
return 0
|
||||
|
||||
static:
|
||||
echo b()
|
||||
Reference in New Issue
Block a user