Python ctypes.c_int() Examples
The following are 30
code examples of ctypes.c_int().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ctypes
, or try the search function
.
Example #1
Source File: libxc.py From pyscf with Apache License 2.0 | 6 votes |
def xc_type(xc_code): if xc_code is None: return None elif isinstance(xc_code, str): if is_nlc(xc_code): return 'NLC' hyb, fn_facs = parse_xc(xc_code) else: fn_facs = [(xc_code, 1)] # mimic fn_facs if not fn_facs: return 'HF' elif all(_itrf.LIBXC_is_lda(ctypes.c_int(xid)) for xid, fac in fn_facs): return 'LDA' elif any(_itrf.LIBXC_is_meta_gga(ctypes.c_int(xid)) for xid, fac in fn_facs): return 'MGGA' else: # any(_itrf.LIBXC_is_gga(ctypes.c_int(xid)) for xid, fac in fn_facs) # include hybrid_xc return 'GGA'
Example #2
Source File: direct_spin0.py From pyscf with Apache License 2.0 | 6 votes |
def contract_1e(f1e, fcivec, norb, nelec, link_index=None): fcivec = numpy.asarray(fcivec, order='C') link_index = _unpack(norb, nelec, link_index) na, nlink = link_index.shape[:2] assert(fcivec.size == na**2) ci1 = numpy.empty_like(fcivec) f1e_tril = lib.pack_tril(f1e) libfci.FCIcontract_1e_spin0(f1e_tril.ctypes.data_as(ctypes.c_void_p), fcivec.ctypes.data_as(ctypes.c_void_p), ci1.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(norb), ctypes.c_int(na), ctypes.c_int(nlink), link_index.ctypes.data_as(ctypes.c_void_p)) # no *.5 because FCIcontract_2e_spin0 only compute half of the contraction return lib.transpose_sum(ci1, inplace=True).reshape(fcivec.shape) # Note eri is NOT the 2e hamiltonian matrix, the 2e hamiltonian is # h2e = eri_{pq,rs} p^+ q r^+ s # = (pq|rs) p^+ r^+ s q - (pq|rs) \delta_{qr} p^+ s # so eri is defined as # eri_{pq,rs} = (pq|rs) - (1/Nelec) \sum_q (pq|qs) # to restore the symmetry between pq and rs, # eri_{pq,rs} = (pq|rs) - (.5/Nelec) [\sum_q (pq|qs) + \sum_p (pq|rp)] # Please refer to the treatment in direct_spin1.absorb_h1e # the input fcivec should be symmetrized
Example #3
Source File: _vhf.py From pyscf with Apache License 2.0 | 6 votes |
def __init__(self, mol, intor, prescreen='CVHFnoscreen', qcondname=None, dmcondname=None): '''If function "qcondname" is presented, the qcond (sqrt(integrals)) and will be initialized in __init__. ''' intor = mol._add_suffix(intor) self._this = ctypes.POINTER(_CVHFOpt)() #print self._this.contents, expect ValueError: NULL pointer access self._intor = intor self._cintopt = make_cintopt(mol._atm, mol._bas, mol._env, intor) self._dmcondname = dmcondname natm = ctypes.c_int(mol.natm) nbas = ctypes.c_int(mol.nbas) libcvhf.CVHFinit_optimizer(ctypes.byref(self._this), mol._atm.ctypes.data_as(ctypes.c_void_p), natm, mol._bas.ctypes.data_as(ctypes.c_void_p), nbas, mol._env.ctypes.data_as(ctypes.c_void_p)) self.prescreen = prescreen if qcondname is not None: self.init_cvhf_direct(mol, intor, qcondname)
Example #4
Source File: symbol.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def name(self): """Gets name string from the symbol, this function only works for non-grouped symbol. Returns ------- value : str The name of this symbol, returns ``None`` for grouped symbol. """ ret = ctypes.c_char_p() success = ctypes.c_int() check_call(_LIB.MXSymbolGetName( self.handle, ctypes.byref(ret), ctypes.byref(success))) if success.value != 0: return py_str(ret.value) else: return None
Example #5
Source File: autograd.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def set_recording(is_recording): #pylint: disable=redefined-outer-name """Set status to recording/not recording. When recording, graph will be constructed for gradient computation. Parameters ---------- is_recording: bool Returns ------- previous state before this set. """ prev = ctypes.c_int() check_call(_LIB.MXAutogradSetIsRecording( ctypes.c_int(is_recording), ctypes.byref(prev))) return bool(prev.value)
Example #6
Source File: selected_ci.py From pyscf with Apache License 2.0 | 6 votes |
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)
Example #7
Source File: autograd.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def set_training(train_mode): #pylint: disable=redefined-outer-name """Set status to training/predicting. This affects ctx.is_train in operator running context. For example, Dropout will drop inputs randomly when train_mode=True while simply passing through if train_mode=False. Parameters ---------- train_mode: bool Returns ------- previous state before this set. """ prev = ctypes.c_int() check_call(_LIB.MXAutogradSetIsTraining( ctypes.c_int(train_mode), ctypes.byref(prev))) return bool(prev.value)
Example #8
Source File: autograd.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def backward(heads, head_grads=None, retain_graph=False, train_mode=True): #pylint: disable=redefined-outer-name """Compute the gradients of heads w.r.t previously marked variables. Parameters ---------- heads: NDArray or list of NDArray Output NDArray(s) head_grads: NDArray or list of NDArray or None Gradients with respect to heads. train_mode: bool, optional Whether to do backward for training or predicting. """ head_handles, hgrad_handles = _parse_head(heads, head_grads) check_call(_LIB.MXAutogradBackwardEx( len(head_handles), head_handles, hgrad_handles, 0, ctypes.c_void_p(0), ctypes.c_int(retain_graph), ctypes.c_int(0), ctypes.c_int(train_mode), ctypes.c_void_p(0), ctypes.c_void_p(0)))
Example #9
Source File: ndarray.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def dtype(self): """Data-type of the array's elements. Returns ------- numpy.dtype This NDArray's data type. Examples -------- >>> x = mx.nd.zeros((2,3)) >>> x.dtype <type 'numpy.float32'> >>> y = mx.nd.zeros((2,3), dtype='int32') >>> y.dtype <type 'numpy.int32'> """ mx_dtype = ctypes.c_int() check_call(_LIB.MXNDArrayGetDType( self.handle, ctypes.byref(mx_dtype))) return _DTYPE_MX_TO_NP[mx_dtype.value]
Example #10
Source File: numint.py From pyscf with Apache License 2.0 | 6 votes |
def _contract_rho(bra, ket): #:rho = numpy.einsum('pi,pi->p', bra.real, ket.real) #:rho += numpy.einsum('pi,pi->p', bra.imag, ket.imag) bra = bra.T ket = ket.T nao, ngrids = bra.shape rho = numpy.empty(ngrids) if not (bra.flags.c_contiguous and ket.flags.c_contiguous): rho = numpy.einsum('ip,ip->p', bra.real, ket.real) rho += numpy.einsum('ip,ip->p', bra.imag, ket.imag) elif bra.dtype == numpy.double and ket.dtype == numpy.double: libdft.VXC_dcontract_rho(rho.ctypes.data_as(ctypes.c_void_p), bra.ctypes.data_as(ctypes.c_void_p), ket.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(nao), ctypes.c_int(ngrids)) elif bra.dtype == numpy.complex128 and ket.dtype == numpy.complex128: libdft.VXC_zcontract_rho(rho.ctypes.data_as(ctypes.c_void_p), bra.ctypes.data_as(ctypes.c_void_p), ket.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(nao), ctypes.c_int(ngrids)) else: rho = numpy.einsum('ip,ip->p', bra.real, ket.real) rho += numpy.einsum('ip,ip->p', bra.imag, ket.imag) return rho
Example #11
Source File: selected_ci.py From pyscf with Apache License 2.0 | 6 votes |
def gen_cre_linkstr(strs, norb, nelec): '''Given intermediates, the link table to generate input strs ''' if nelec == norb: return None strs = numpy.asarray(strs, dtype=numpy.int64) nvir = norb - nelec nstrs = len(strs) inter = numpy.empty((nstrs*nvir), dtype=numpy.int64) libfci.SCIcre_uniq_strs.restype = ctypes.c_int ninter = libfci.SCIcre_uniq_strs(inter.ctypes.data_as(ctypes.c_void_p), strs.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(norb), ctypes.c_int(nelec), ctypes.c_int(nstrs)) inter = numpy.asarray(sorted(set(inter[:ninter])), dtype=numpy.int64) ninter = len(inter) link_index = numpy.zeros((ninter,nelec+1,4), dtype=numpy.int32) libfci.SCIcre_linkstr(link_index.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(norb), ctypes.c_int(nelec), ctypes.c_int(nstrs), ctypes.c_int(ninter), strs.ctypes.data_as(ctypes.c_void_p), inter.ctypes.data_as(ctypes.c_void_p)) return link_index
Example #12
Source File: ndarray.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def _new_alloc_handle(shape, ctx, delay_alloc, dtype=mx_real_t): """Return a new handle with specified shape and context. Empty handle is only used to hold results. Returns ------- handle A new empty `NDArray` handle. """ hdl = NDArrayHandle() check_call(_LIB.MXNDArrayCreateEx( c_array_buf(mx_uint, native_array('I', shape)), mx_uint(len(shape)), ctypes.c_int(ctx.device_typeid), ctypes.c_int(ctx.device_id), ctypes.c_int(int(delay_alloc)), ctypes.c_int(int(_DTYPE_NP_TO_MX[np.dtype(dtype).type])), ctypes.byref(hdl))) return hdl
Example #13
Source File: io.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def next(self): if self._debug_skip_load and not self._debug_at_begin: return DataBatch(data=[self.getdata()], label=[self.getlabel()], pad=self.getpad(), index=self.getindex()) if self.first_batch is not None: batch = self.first_batch self.first_batch = None return batch self._debug_at_begin = False next_res = ctypes.c_int(0) check_call(_LIB.MXDataIterNext(self.handle, ctypes.byref(next_res))) if next_res.value: return DataBatch(data=[self.getdata()], label=[self.getlabel()], pad=self.getpad(), index=self.getindex()) else: raise StopIteration
Example #14
Source File: context.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def num_gpus(): """Query CUDA for the number of GPUs present. Raises ------ Will raise an exception on any CUDA error. Returns ------- count : int The number of GPUs. """ count = ctypes.c_int() check_call(_LIB.MXGetGPUCount(ctypes.byref(count))) return count.value
Example #15
Source File: gmacpyutil.py From macops with Apache License 2.0 | 6 votes |
def IsTextConsole(): """Checks if console is test only or GUI. Returns: True if the console is text-only, False if GUI is available """ try: # see TN2083 security_lib = ctypes.cdll.LoadLibrary( '/System/Library/Frameworks/Security.framework/Security') # Security.Framework/Headers/AuthSession.h session = -1 session_id = ctypes.c_int(0) attributes = ctypes.c_int(0) ret = security_lib.SessionGetInfo( session, ctypes.byref(session_id), ctypes.byref(attributes)) if ret != 0: return True return not attributes.value & SESSIONHASGRAPHICACCESS except OSError: return True
Example #16
Source File: engine.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def set_bulk_size(size): """Set size limit on bulk execution. Bulk execution bundles many operators to run together. This can improve performance when running a lot of small operators sequentially. Parameters ---------- size : int Maximum number of operators that can be bundled in a bulk. Returns ------- int Previous bulk size. """ prev = ctypes.c_int() check_call(_LIB.MXEngineSetBulkSize( ctypes.c_int(size), ctypes.byref(prev))) return prev.value
Example #17
Source File: profiler.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def set_state(state='stop', profile_process='worker'): """Set up the profiler state to 'run' or 'stop'. Parameters ---------- state : string, optional Indicates whether to run the profiler, can be 'stop' or 'run'. Default is `stop`. profile_process : string whether to profile kvstore `server` or `worker`. server can only be profiled when kvstore is of type dist. if this is not passed, defaults to `worker` """ state2int = {'stop': 0, 'run': 1} profile_process2int = {'worker': 0, 'server': 1} check_call(_LIB.MXSetProcessProfilerState(ctypes.c_int(state2int[state]), profile_process2int[profile_process], profiler_kvstore_handle))
Example #18
Source File: opencv.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
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)
Example #19
Source File: memory_benchmark.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 6 votes |
def main(): args = parse_args() lhs_row_dim = int(args.lhs_row_dim) lhs_col_dim = int(args.lhs_col_dim) rhs_col_dim = int(args.rhs_col_dim) density = float(args.density) lhs_stype = args.lhs_stype rhs_stype = args.rhs_stype if args.rhs_density: rhs_density = float(args.rhs_density) else: rhs_density = density dot_func = mx.nd.sparse.dot if lhs_stype == "csr" else mx.nd.dot check_call(_LIB.MXSetNumOMPThreads(ctypes.c_int(args.num_omp_threads))) bench_dot(lhs_row_dim, lhs_col_dim, rhs_col_dim, density, rhs_density, dot_func, False, lhs_stype, rhs_stype, args.only_storage)
Example #20
Source File: cistring.py From pyscf with Apache License 2.0 | 6 votes |
def gen_cre_str_index_o1(orb_list, nelec): '''C implementation of gen_cre_str_index function''' norb = len(orb_list) assert(nelec < norb) strs = make_strings(orb_list, nelec) if isinstance(strs, OIndexList): raise NotImplementedError('System with 64 orbitals or more') strs = numpy.array(strs, dtype=numpy.int64) na = strs.shape[0] link_index = numpy.empty((len(strs),norb-nelec,4), dtype=numpy.int32) libfci.FCIcre_str_index(link_index.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(norb), ctypes.c_int(na), ctypes.c_int(nelec), strs.ctypes.data_as(ctypes.c_void_p)) return link_index
Example #21
Source File: direct_spin1.py From pyscf with Apache License 2.0 | 5 votes |
def make_hdiag(h1e, eri, norb, nelec): '''Diagonal Hamiltonian for Davidson preconditioner ''' if h1e.dtype == numpy.complex or eri.dtype == numpy.complex: raise NotImplementedError('Complex Hamiltonian') neleca, nelecb = _unpack_nelec(nelec) h1e = numpy.asarray(h1e, order='C') eri = ao2mo.restore(1, eri, norb) occslsta = occslstb = cistring._gen_occslst(range(norb), neleca) if neleca != nelecb: occslstb = cistring._gen_occslst(range(norb), nelecb) na = len(occslsta) nb = len(occslstb) hdiag = numpy.empty(na*nb) jdiag = numpy.asarray(numpy.einsum('iijj->ij',eri), order='C') kdiag = numpy.asarray(numpy.einsum('ijji->ij',eri), order='C') c_h1e = h1e.ctypes.data_as(ctypes.c_void_p) c_jdiag = jdiag.ctypes.data_as(ctypes.c_void_p) c_kdiag = kdiag.ctypes.data_as(ctypes.c_void_p) libfci.FCImake_hdiag_uhf(hdiag.ctypes.data_as(ctypes.c_void_p), c_h1e, c_h1e, c_jdiag, c_jdiag, c_jdiag, c_kdiag, c_kdiag, ctypes.c_int(norb), ctypes.c_int(na), ctypes.c_int(nb), ctypes.c_int(neleca), ctypes.c_int(nelecb), occslsta.ctypes.data_as(ctypes.c_void_p), occslstb.ctypes.data_as(ctypes.c_void_p)) return hdiag
Example #22
Source File: numint.py From pyscf with Apache License 2.0 | 5 votes |
def _dot_ao_ao(mol, ao1, ao2, non0tab, shls_slice, ao_loc, hermi=0): '''return numpy.dot(ao1.T, ao2)''' ngrids, nao = ao1.shape if nao < SWITCH_SIZE: return lib.dot(ao1.T.conj(), ao2) if not ao1.flags.f_contiguous: ao1 = lib.transpose(ao1) if not ao2.flags.f_contiguous: ao2 = lib.transpose(ao2) if ao1.dtype == ao2.dtype == numpy.double: fn = libdft.VXCdot_ao_ao else: fn = libdft.VXCzdot_ao_ao ao1 = numpy.asarray(ao1, numpy.complex128) ao2 = numpy.asarray(ao2, numpy.complex128) if non0tab is None or shls_slice is None or ao_loc is None: pnon0tab = pshls_slice = pao_loc = lib.c_null_ptr() else: pnon0tab = non0tab.ctypes.data_as(ctypes.c_void_p) pshls_slice = (ctypes.c_int*2)(*shls_slice) pao_loc = ao_loc.ctypes.data_as(ctypes.c_void_p) vv = numpy.empty((nao,nao), dtype=ao1.dtype) fn(vv.ctypes.data_as(ctypes.c_void_p), ao1.ctypes.data_as(ctypes.c_void_p), ao2.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(nao), ctypes.c_int(ngrids), ctypes.c_int(mol.nbas), ctypes.c_int(hermi), pnon0tab, pshls_slice, pao_loc) return vv
Example #23
Source File: direct_spin1.py From pyscf with Apache License 2.0 | 5 votes |
def contract_1e(f1e, fcivec, norb, nelec, link_index=None): '''Contract the 1-electron Hamiltonian with a FCI vector to get a new FCI vector. ''' fcivec = numpy.asarray(fcivec, order='C') link_indexa, link_indexb = _unpack(norb, nelec, link_index) na, nlinka = link_indexa.shape[:2] nb, nlinkb = link_indexb.shape[:2] assert(fcivec.size == na*nb) f1e_tril = lib.pack_tril(f1e) ci1 = numpy.zeros_like(fcivec) libfci.FCIcontract_a_1e(f1e_tril.ctypes.data_as(ctypes.c_void_p), fcivec.ctypes.data_as(ctypes.c_void_p), ci1.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(norb), ctypes.c_int(na), ctypes.c_int(nb), ctypes.c_int(nlinka), ctypes.c_int(nlinkb), link_indexa.ctypes.data_as(ctypes.c_void_p), link_indexb.ctypes.data_as(ctypes.c_void_p)) libfci.FCIcontract_b_1e(f1e_tril.ctypes.data_as(ctypes.c_void_p), fcivec.ctypes.data_as(ctypes.c_void_p), ci1.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(norb), ctypes.c_int(na), ctypes.c_int(nb), ctypes.c_int(nlinka), ctypes.c_int(nlinkb), link_indexa.ctypes.data_as(ctypes.c_void_p), link_indexb.ctypes.data_as(ctypes.c_void_p)) return ci1
Example #24
Source File: cistring.py From pyscf with Apache License 2.0 | 5 votes |
def addrs2str(norb, nelec, addrs): '''Convert a list of CI determinant address to string''' #return [addr2str_o1(norb, nelec, addr) for addr in addrs] addrs = numpy.asarray(addrs, dtype=numpy.int32) assert(all(num_strings(norb, nelec) > addrs)) count = addrs.size strs = numpy.empty(count, dtype=numpy.int64) libfci.FCIaddrs2str(strs.ctypes.data_as(ctypes.c_void_p), addrs.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(count), ctypes.c_int(norb), ctypes.c_int(nelec)) return strs #def str2addr_o0(norb, nelec, string): # if norb <= nelec or nelec == 0: # return 0 # elif (1<<(norb-1)) & string: # remove the first bit # return num_strings(norb-1, nelec) \ # + str2addr_o0(norb-1, nelec-1, string^(1<<(norb-1))) # else: # return str2addr_o0(norb-1, nelec, string) #def str2addr_o1(norb, nelec, string): # #TODO: assert norb > first-bit-in-string, nelec == num-1-in-string # addr = 0 # nelec_left = nelec # for norb_left in reversed(range(norb)): # if nelec_left == 0 or norb_left < nelec_left: # break # elif (1<<norb_left) & string: # addr += num_strings(norb_left, nelec_left) # nelec_left -= 1 # return addr
Example #25
Source File: rdm.py From pyscf with Apache License 2.0 | 5 votes |
def make_rdm1_ms0(fname, cibra, ciket, norb, nelec, link_index=None): assert(cibra is not None and ciket is not None) cibra = numpy.asarray(cibra, order='C') ciket = numpy.asarray(ciket, order='C') if link_index is None: neleca, nelecb = _unpack_nelec(nelec) assert(neleca == nelecb) link_index = cistring.gen_linkstr_index(range(norb), neleca) na, nlink = link_index.shape[:2] assert(cibra.size == na**2) assert(ciket.size == na**2) rdm1 = numpy.empty((norb,norb)) fn = getattr(librdm, fname) fn(rdm1.ctypes.data_as(ctypes.c_void_p), cibra.ctypes.data_as(ctypes.c_void_p), ciket.ctypes.data_as(ctypes.c_void_p), ctypes.c_int(norb), ctypes.c_int(na), ctypes.c_int(na), ctypes.c_int(nlink), ctypes.c_int(nlink), link_index.ctypes.data_as(ctypes.c_void_p), link_index.ctypes.data_as(ctypes.c_void_p)) return rdm1.T # NOTE rdm1 in this function is calculated as rdm1[p,q] = <q^+ p>; # rdm2 is calculated as <p^+ q r^+ s>. Call reorder_rdm to transform to the # normal rdm2, which is dm2[p,q,r,s] = <p^+ r^+ s q>. # symm = 1: bra, ket symmetry # symm = 2: particle permutation symmetry
Example #26
Source File: libxc.py From pyscf with Apache License 2.0 | 5 votes |
def hybrid_coeff(xc_code, spin=0): '''Support recursively defining hybrid functional ''' hyb, fn_facs = parse_xc(xc_code) for xid, fac in fn_facs: hyb[0] += fac * _itrf.LIBXC_hybrid_coeff(ctypes.c_int(xid)) return hyb[0]
Example #27
Source File: libxc.py From pyscf with Apache License 2.0 | 5 votes |
def max_deriv_order(xc_code): hyb, fn_facs = parse_xc(xc_code) if fn_facs: return min(_itrf.LIBXC_max_deriv_order(ctypes.c_int(xid)) for xid, fac in fn_facs) else: return 3
Example #28
Source File: _pbcintor.py From pyscf with Apache License 2.0 | 5 votes |
def init_rcut_cond(self, cell, precision=None): if precision is None: precision = cell.precision rcut = numpy.array([cell.bas_rcut(ib, precision) for ib in range(cell.nbas)]) natm = ctypes.c_int(cell._atm.shape[0]) nbas = ctypes.c_int(cell._bas.shape[0]) libpbc.PBCset_rcut_cond(self._this, rcut.ctypes.data_as(ctypes.c_void_p), cell._atm.ctypes.data_as(ctypes.c_void_p), natm, cell._bas.ctypes.data_as(ctypes.c_void_p), nbas, cell._env.ctypes.data_as(ctypes.c_void_p)) return self
Example #29
Source File: _pbcintor.py From pyscf with Apache License 2.0 | 5 votes |
def __init__(self, cell): self._this = ctypes.POINTER(_CPBCOpt)() natm = ctypes.c_int(cell._atm.shape[0]) nbas = ctypes.c_int(cell._bas.shape[0]) libpbc.PBCinit_optimizer(ctypes.byref(self._this), cell._atm.ctypes.data_as(ctypes.c_void_p), natm, cell._bas.ctypes.data_as(ctypes.c_void_p), nbas, cell._env.ctypes.data_as(ctypes.c_void_p))
Example #30
Source File: ndarray.py From dynamic-training-with-apache-mxnet-on-aws with Apache License 2.0 | 5 votes |
def __call__(self, *args, **kwargs): """ctypes implementation of imperative invoke wrapper""" out = kwargs.pop('out', None) if out is not None: original_output = out if isinstance(out, NDArrayBase): out = (out,) num_output = ctypes.c_int(len(out)) output_vars = c_handle_array(out) output_vars = ctypes.cast(output_vars, ctypes.POINTER(NDArrayHandle)) else: original_output = None output_vars = ctypes.POINTER(NDArrayHandle)() num_output = ctypes.c_int(0) if kwargs: raise TypeError( "CachedOp.__call__ got unexpected keyword argument(s): " + \ ', '.join(kwargs.keys())) # return output stypes to avoid the c_api call for checking # a handle's stype in _ndarray_cls out_stypes = ctypes.POINTER(ctypes.c_int)() check_call(_LIB.MXInvokeCachedOpEx( self.handle, ctypes.c_int(len(args)), c_handle_array(args), ctypes.byref(num_output), ctypes.byref(output_vars), ctypes.byref(out_stypes))) if original_output is not None: return original_output if num_output.value == 1: return _ndarray_cls(ctypes.cast(output_vars[0], NDArrayHandle), stype=out_stypes[0]) else: return [_ndarray_cls(ctypes.cast(output_vars[i], NDArrayHandle), stype=out_stypes[i]) for i in range(num_output.value)]