本文整理汇总了Python中ctypes.c_double方法的典型用法代码示例。如果您正苦于以下问题:Python ctypes.c_double方法的具体用法?Python ctypes.c_double怎么用?Python ctypes.c_double使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ctypes
的用法示例。
在下文中一共展示了ctypes.c_double方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: copyMakeBorder
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def copyMakeBorder(src, top, bot, left, right, border_type=cv2.BORDER_CONSTANT, value=0):
"""Pad image border
Wrapper for cv2.copyMakeBorder that uses mx.nd.NDArray
Parameters
----------
src : NDArray
Image in (width, height, channels).
Others are the same with cv2.copyMakeBorder
Returns
-------
img : NDArray
padded image
"""
hdl = NDArrayHandle()
check_call(_LIB.MXCVcopyMakeBorder(src.handle, ctypes.c_int(top), ctypes.c_int(bot),
ctypes.c_int(left), ctypes.c_int(right),
ctypes.c_int(border_type), ctypes.c_double(value),
ctypes.byref(hdl)))
return mx.nd.NDArray(hdl)
示例2: _score_matrix
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def _score_matrix(self, X):
if self.explore_cnt < self.explore_rounds:
self.explore_cnt += X.shape[0]
# case 1: all predictions are within allowance
if self.explore_cnt <= self.explore_rounds:
scores = self.random_state.random(size=(X.shape[0], self.nchoices))
self._choose_active(X, scores, choose=False)
# case 2: some predictions are within allowance, others are not
else:
scores = np.empty((X.shape[0], self.nchoices), type = ctypes.c_double)
scores[:n_explore] = self.random_state.random(size=(n_explore, self.nchoices))
self._choose_active(X[:n_explore], scores[:n_explore], choose=False)
scores[n_explore:] = self._oracles.decision_function(X[n_explore:])
else:
scores = self._oracles.decision_function(X)
return scores
示例3: fit
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def fit(self, X, y):
if X.shape[0] == 0:
return self
elif np.unique(y).shape[0] <= 1:
self.update_aux(y)
return self
seed = self.random_state.integers(np.iinfo(np.int32).max)
self.model.set_params(random_state = seed)
self.model.fit(X, y)
n_nodes = self.model.tree_.node_count
self.pos = np.zeros(n_nodes, dtype=ctypes.c_long)
self.neg = np.zeros(n_nodes, dtype=ctypes.c_long)
pred_node = self.model.apply(X).astype(ctypes.c_long)
_create_node_counters(self.pos, self.neg, pred_node, y.astype(ctypes.c_double))
self.pos = self.pos.astype(ctypes.c_double) + self.beta_prior[0]
self.neg = self.neg.astype(ctypes.c_double) + self.beta_prior[1]
self.is_fitted = True
return self
示例4: test_libxc_cam_beta_bug
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def test_libxc_cam_beta_bug(self):
'''As a detector for libxc-3.0.0. libxc-3.0.1 fixed this bug
'''
import ctypes
rsh_tmp = (ctypes.c_double*3)()
dft.libxc._itrf.LIBXC_rsh_coeff(1, rsh_tmp)
beta = rsh_tmp[2]
self.assertEqual(beta, 0)
dft.libxc._itrf.LIBXC_rsh_coeff(433, rsh_tmp)
dft.libxc._itrf.LIBXC_rsh_coeff(1, rsh_tmp)
beta = rsh_tmp[2]
self.assertEqual(beta, 0) # libxc-3.0.0 produces -0.46
dft.libxc._itrf.LIBXC_is_hybrid(1)
dft.libxc._itrf.LIBXC_rsh_coeff(1, rsh_tmp)
beta = rsh_tmp[2]
self.assertEqual(beta, 0)
示例5: select_strs
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def select_strs(myci, eri, eri_pq_max, civec_max, strs, norb, nelec):
strs = numpy.asarray(strs, dtype=numpy.int64)
nstrs = len(strs)
nvir = norb - nelec
strs_add = numpy.empty((nstrs*(nelec*nvir)**2//4), dtype=numpy.int64)
libfci.SCIselect_strs.restype = ctypes.c_int
nadd = libfci.SCIselect_strs(strs_add.ctypes.data_as(ctypes.c_void_p),
strs.ctypes.data_as(ctypes.c_void_p),
eri.ctypes.data_as(ctypes.c_void_p),
eri_pq_max.ctypes.data_as(ctypes.c_void_p),
civec_max.ctypes.data_as(ctypes.c_void_p),
ctypes.c_double(myci.select_cutoff),
ctypes.c_int(norb), ctypes.c_int(nelec),
ctypes.c_int(nstrs))
strs_add = sorted(set(strs_add[:nadd]) - set(strs))
return numpy.asarray(strs_add, dtype=numpy.int64)
示例6: rsphar
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def rsphar(r,lmax,res):
"""
Computes (all) real spherical harmonics up to the angular momentum lmax
Args:
r : Cartesian coordinates defining correct theta and phi angles for spherical harmonic
lmax : Integer, maximal angular momentum
Result:
1-d numpy array of float64 elements with all spherical harmonics stored in order 0,0; 1,-1; 1,0; 1,+1 ... lmax,lmax, althogether 0 : (lmax+1)**2 elements.
"""
assert r.shape[-1]==3
r_cp = np.require(r, dtype=float, requirements='C')
res = np.require(res, dtype=float, requirements='CW')
libnao.rsphar(r_cp.ctypes.data_as(POINTER(c_double)), c_int64(lmax), res.ctypes.data_as(POINTER(c_double)))
return 0
#
#
#
示例7: rsphar_vec
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def rsphar_vec(rvs,lmax):
"""
Computes (all) real spherical harmonics up to the angular momentum lmax
Args:
rvs : Cartesian coordinates defining correct theta and phi angles for spherical harmonic
lmax : Integer, maximal angular momentum
Result:
1-d numpy array of float64 elements with all spherical harmonics stored in order 0,0; 1,-1; 1,0; 1,+1 ... lmax,lmax, althogether 0 : (lmax+1)**2 elements.
"""
assert rvs.shape[-1]==3
r_cp = np.require(rvs, dtype=float, requirements='C')
nc = len(rvs)
res = np.require( np.zeros((nc, (lmax+1)**2)), dtype=float, requirements='CW')
libnao.rsphar_vec(r_cp.ctypes.data_as(POINTER(c_double)), c_int64(nc), c_int64(lmax), res.ctypes.data_as(POINTER(c_double)))
#for irv,rvec in enumerate(rvs): rsphar(rvec,lmax,res[irv,:])
return res
#
#
#
示例8: rsphar_exp_vec
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def rsphar_exp_vec(rvs,lmax):
"""
Computes (all) real spherical harmonics up to the angular momentum lmax
Args:
rvs : Cartesian coordinates defining correct theta and phi angles for spherical harmonic
lmax : Integer, maximal angular momentum
Result:
1-d numpy array of float64 elements with all spherical harmonics stored in order 0,0; 1,-1; 1,0; 1,+1 ... lmax,lmax, althogether 0 : (lmax+1)**2 elements.
"""
assert rvs.shape[0]==3
r_cp = np.require(rvs, dtype=np.float64, requirements='C')
nc = rvs[0,...].size
res = np.require( np.zeros(((lmax+1)**2,nc)), dtype=np.float64, requirements='CW')
libnao.rsphar_exp_vec(r_cp.ctypes.data_as(POINTER(c_double)), c_int64(nc), c_int64(lmax), res.ctypes.data_as(POINTER(c_double)))
#for irv,rvec in enumerate(rvs): rsphar(rvec,lmax,res[irv,:])
return res
示例9: init_libnao_orbs
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def init_libnao_orbs(self):
""" Initialization of data on libnao site """
from pyscf.nao.m_libnao import libnao
from pyscf.nao.m_sv_chain_data import sv_chain_data
from ctypes import POINTER, c_double, c_int64, c_int32, byref
data = sv_chain_data(self)
size_x = np.array([1,self.nspin,self.norbs,self.norbs,1], dtype=np.int32)
libnao.init_sv_libnao_orbs.argtypes = (POINTER(c_double), POINTER(c_int64), POINTER(c_int32))
libnao.init_sv_libnao_orbs(data.ctypes.data_as(POINTER(c_double)), c_int64(len(data)), size_x.ctypes.data_as(POINTER(c_int32)))
self.init_sv_libnao_orbs = True
libnao.init_aos_libnao.argtypes = (POINTER(c_int64), POINTER(c_int64))
info = c_int64(-999)
libnao.init_aos_libnao(c_int64(self.norbs), byref(info))
if info.value!=0: raise RuntimeError("info!=0")
return self
示例10: comp_induce_potential
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def comp_induce_potential(self):
"""
Compute the induce potential corresponding to the density change
calculated in get_spatial_density
"""
from scipy.signal import convolve
Nx, Ny, Nz = self.mesh[0].size, self.mesh[1].size, self.mesh[2].size
grid = np.zeros((Nx, Ny, Nz), dtype = np.float64)
factor = self.dr[0]*self.dr[1]*self.dr[2]/(np.sqrt(2*np.pi)**3)
libnao.comp_spatial_grid_pot(
self.dr.ctypes.data_as(POINTER(c_double)),
self.mesh[0].ctypes.data_as(POINTER(c_double)),
self.mesh[1].ctypes.data_as(POINTER(c_double)),
self.mesh[2].ctypes.data_as(POINTER(c_double)),
grid.ctypes.data_as(POINTER(c_double)),
c_int(Nx), c_int(Ny), c_int(Nz))
return convolve(grid, self.dn_spatial, mode="same", method="fft")*factor
示例11: spmv_wrapper
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def spmv_wrapper(n, alpha, ap, x, beta = 0.0, incx = 1, incy = 1, lower=0):
""" Small blas wrapper that is missing in scipy.linalg.blas in scipy.version<=1 """
if ap.size != n*(n+1)//2:
raise ValueError("simple wrapper, you MUST provide x.size = n, ap.size = n*(n+1)/2")
if ap.dtype == np.float32:
y = np.zeros((n), dtype=np.float32)
libsparsetools.SSPMV_wrapper(c_int(lower), c_int(n), c_float(alpha),
ap.ctypes.data_as(POINTER(c_float)),
x.ctypes.data_as(POINTER(c_float)), c_int(incx), c_float(beta),
y.ctypes.data_as(POINTER(c_float)), c_int(incy))
elif ap.dtype == np.float64:
y = np.zeros((n), dtype=np.float64)
libsparsetools.DSPMV_wrapper(c_int(lower), c_int(n), c_double(alpha),
ap.ctypes.data_as(POINTER(c_double)),
x.ctypes.data_as(POINTER(c_double)), c_int(incx), c_double(beta),
y.ctypes.data_as(POINTER(c_double)), c_int(incy))
else:
raise ValueError("dtype error, only np.float32 and np.float64 implemented")
return y
示例12: dens_libnao
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def dens_libnao(crds, nspin):
""" Compute the electronic density using library call """
assert crds.ndim==2
assert crds.shape[-1]==3
nc = crds.shape[0]
crds_cp = require(crds, dtype=c_double, requirements='C')
dens = require( zeros((nc, nspin)), dtype=c_double, requirements='CW')
libnao.dens_libnao(
crds_cp.ctypes.data_as(POINTER(c_double)),
c_int64(nc),
dens.ctypes.data_as(POINTER(c_double)),
c_int64(nspin))
return dens
示例13: init_prod_basis_pp
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def init_prod_basis_pp(self, sv, **kvargs):
""" Talman's procedure should be working well with Pseudo-Potential starting point."""
from pyscf.nao.m_prod_biloc import prod_biloc_c
#t1 = timer()
self.init_inp_param_prod_log_dp(sv, **kvargs)
data = self.chain_data()
libnao.init_vrtx_cc_apair(data.ctypes.data_as(POINTER(c_double)), c_int64(len(data)))
self.sv_pbloc_data = True
#t2 = timer(); print(t2-t1); t1=timer();
self.bp2info = [] # going to be some information including indices of atoms, list of contributing centres, conversion coefficients
for ia1 in range(sv.natoms):
rc1 = sv.ao_log.sp2rcut[sv.atom2sp[ia1]]
for ia2 in range(ia1+1,sv.natoms):
rc2,dist = sv.ao_log.sp2rcut[sv.atom2sp[ia2]], sqrt(((sv.atom2coord[ia1]-sv.atom2coord[ia2])**2).sum())
if dist>rc1+rc2 : continue
pbiloc = self.comp_apair_pp_libint(ia1,ia2)
if pbiloc is not None : self.bp2info.append(pbiloc)
self.dpc2s,self.dpc2t,self.dpc2sp = self.init_c2s_domiprod() # dominant product's counting
self.npdp = self.dpc2s[-1]
self.norbs = self.sv.norbs
return self
示例14: thrj_nobuf
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def thrj_nobuf(l1,l2,l3,m1,m2,m3):
""" Wigner3j symbol without buffer. Written by James Talman. """
from pyscf.nao.m_libnao import libnao
from ctypes import POINTER, c_double, c_int, byref
libnao.thrj_subr.argtypes = (
POINTER(c_int), # l1
POINTER(c_int), # l2
POINTER(c_int), # l3
POINTER(c_int), # m1
POINTER(c_int), # m2
POINTER(c_int), # m3
POINTER(c_double)) # thrj
aa = c_double()
libnao.thrj_subr( c_int(l1),c_int(l2),c_int(l3),c_int(m1),c_int(m2),c_int(m3), byref(aa)) # call library function
return aa.value
示例15: comp_vext_tem
# 需要导入模块: import ctypes [as 别名]
# 或者: from ctypes import c_double [as 别名]
def comp_vext_tem(self, ao_log=None, numba_parallel=True):
"""
Compute the external potential created by a moving charge
using the fortran routine
"""
Vfreq_real = np.zeros((self.freq.size, self.nprod), dtype=np.float64)
Vfreq_imag = np.zeros((self.freq.size, self.nprod), dtype=np.float64)
ub = find_nearrest_index(self.freq_symm, self.freq[0])
libnao.comp_vext_tem(self.time.ctypes.data_as(POINTER(c_double)),
self.freq_symm.ctypes.data_as(POINTER(c_double)),
c_int(self.time.size), c_int(self.freq.size),
c_int(ub), c_int(self.nprod),
c_double(self.vnorm),
self.vdir.ctypes.data_as(POINTER(c_double)),
self.beam_offset.ctypes.data_as(POINTER(c_double)),
Vfreq_real.ctypes.data_as(POINTER(c_double)),
Vfreq_imag.ctypes.data_as(POINTER(c_double)),
)
return Vfreq_real + 1.0j*Vfreq_imag