source: codes/mesh_generation/scvt/sphere_fast.pyx @ 974

Last change on this file since 974 was 974, checked in by dubos, 5 years ago

mesh_generation : creation

File size: 1.4 KB
Line 
1cdef extern from "sphere_fast.h":
2    cdef void fast_scale_vec(double, double[])
3    cdef void circum_batch(double*, double*)
4    cdef void circum_fast_(int, long*, double*, double*)
5    cdef void barycenters_fast_(int, long*, long*, double*, double*, double*, double*, double*)
6
7def scale_vec(double scale, double[::1] vec):
8    fast_scale_vec(scale, &vec[0])
9
10def circum_test(double[:,::1] pts, double[:,::1] circ):
11    circum_batch(&pts[0,0], &circ[0,0])
12
13def circum_fast(long[:,::1] ind, double[:,::1] pts, double[:,::1] circ):
14    cdef int N = ind.shape[0] # number of circumcenters to compute
15#    print('Computing %d circumcenters'%N)
16    circum_fast_(N, &ind[0,0], &pts[0,0], &circ[0,0])
17
18def barycenters_fast(long[::1] degree, long[::1] index, 
19                     double[:,::1] point, double[::1] w_i,
20                     double[:,::1] vertex, double[::1] w_v,
21                     double[:,::1] bary):
22    cdef int N=degree.shape[0] # number of voronoi cells
23
24    cdef int sum=0
25    for i in range(N):
26      sum += degree[i]
27
28#    print(degree[0:10])
29#    print('Computing %d barycenters'%N)
30#    print('degree.sum() = %d'%sum )
31#    print('index.size = %d'%index.size )
32#    print('point.shape = ', point.shape )
33#    print('vertex.shape = ', vertex.shape )
34#    print('bary.shape = ', bary.shape )
35   
36    return barycenters_fast_(N, &degree[0], &index[0], 
37                             &point[0,0], &w_i[0],
38                             &vertex[0,0], &w_v[0],
39                             &bary[0,0])
Note: See TracBrowser for help on using the repository browser.