Mercurial > pub > dyncall > bindings
view java/jdc/examples/UnixMathExample.java @ 46:c21d1c2c84e1
- removed pydc.py wrapper overhead (which only called pydcext.so functions, directly, anyways)
* implies renaming pydcext.* to pydc.*
* while at it, iterate directly over args that are passed in (before we did extract fptr, sig and a tuple for the args and iterated over latter afterwards); we might have a tiny perf improvement now
- added type stub as package_data
author | Tassilo Philipp |
---|---|
date | Fri, 13 Nov 2020 14:10:31 +0100 |
parents | 4ee8d6aa7721 |
children |
line wrap: on
line source
import org.dyncall.DC; class UnixMathExample { public static void main(String args[]) { long lib = DC.loadLibrary("/usr/lib/libm.so"); System.out.format("libm.so handle: %x\n", lib); long f0 = DC.find(lib, "sqrtf"); System.out.format("found sqrtf at: %x\n", f0); long f1 = DC.find(lib, "pow"); System.out.format("found pow at: %x\n", f1); long vm = DC.newCallVM(4096); DC.argFloat(vm, 36.f); float r0 = DC.callFloat(vm, f0); System.out.format("sqrtf(36.f) = %f\n", r0); DC.reset(vm); DC.argDouble(vm, 2.); DC.argDouble(vm, 10.); double r1 = DC.callDouble(vm, f1); System.out.format("pow(2., 10.) = %f\n", r1); // Done, cleanup. DC.freeCallVM(vm); DC.freeLibrary(lib); } }