Changeset 32e3c9b in sasmodels for sasmodels/generate.py
- Timestamp:
- Jul 21, 2016 2:08:04 PM (8 years ago)
- Branches:
- master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
- Children:
- b966a96
- Parents:
- 42356c8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sasmodels/generate.py
ra738209 r32e3c9b 387 387 388 388 389 def kernel_name(model_info, is_2d):390 # type: (ModelInfo, bool) -> str389 def kernel_name(model_info, variant): 390 # type: (ModelInfo, str) -> str 391 391 """ 392 392 Name of the exported kernel symbol. 393 """ 394 return model_info.name + "_" + ("Iqxy" if is_2d else "Iq") 393 394 *variant* is "Iq", "Iqxy" or "Imagnetic". 395 """ 396 return model_info.name + "_" + variant 395 397 396 398 … … 555 557 refs = ["_q[_i]"] + _call_pars("_v.", partable.iq_parameters) 556 558 call_iq = "#define CALL_IQ(_q,_i,_v) Iq(%s)" % (",".join(refs)) 557 if _have_Iqxy(user_code) :559 if _have_Iqxy(user_code) or isinstance(model_info.Iqxy, str): 558 560 # Call 2D model 559 refs = [" q[2*_i]", "q[2*_i+1]"] + _call_pars("_v.", partable.iqxy_parameters)561 refs = ["_q[2*_i]", "_q[2*_i+1]"] + _call_pars("_v.", partable.iqxy_parameters) 560 562 call_iqxy = "#define CALL_IQ(_q,_i,_v) Iqxy(%s)" % (",".join(refs)) 561 563 else: … … 566 568 call_iqxy = "#define CALL_IQ(_q,_i,_v) Iq(%s)" % (",".join(pars_sqrt)) 567 569 570 magpars = [k-2 for k,p in enumerate(partable.call_parameters) 571 if p.type == 'sld'] 572 568 573 # Fill in definitions for numbers of parameters 569 574 source.append("#define MAX_PD %s"%partable.max_pd) 570 575 source.append("#define NPARS %d"%partable.npars) 576 source.append("#define NUM_MAGNETIC %d" % len(magpars)) 577 source.append("#define MAGNETIC_PARS %s"%",".join(str(k) for k in magpars)) 571 578 572 579 # TODO: allow mixed python/opencl kernels? … … 584 591 source = [ 585 592 # define the Iq kernel 586 "#define KERNEL_NAME %s_Iq" %name,593 "#define KERNEL_NAME %s_Iq" % name, 587 594 call_iq, 588 595 kernel_code, … … 591 598 592 599 # define the Iqxy kernel from the same source with different #defines 593 "#define KERNEL_NAME %s_Iqxy" %name,600 "#define KERNEL_NAME %s_Iqxy" % name, 594 601 call_iqxy, 595 602 kernel_code, 603 "#undef CALL_IQ", 604 "#undef KERNEL_NAME", 605 606 # define the Imagnetic kernel 607 "#define KERNEL_NAME %s_Imagnetic" % name, 608 "#define MAGNETIC 1", 609 call_iqxy, 610 kernel_code, 611 "#undef MAGNETIC", 596 612 "#undef CALL_IQ", 597 613 "#undef KERNEL_NAME",
Note: See TracChangeset
for help on using the changeset viewer.