dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #23502
Re: jit signature
On 26 May 2011 15:40, Anders Logg <logg@xxxxxxxxx> wrote:
> On Thu, May 26, 2011 at 03:10:54PM +0200, Martin Sandve Alnæs wrote:
>> On 26 May 2011 14:46, Anders Logg <logg@xxxxxxxxx> wrote:
>> > On Thu, May 26, 2011 at 12:44:56PM +0200, Martin Sandve Alnæs wrote:
>> >> On 26 May 2011 12:36, Anders Logg <logg@xxxxxxxxx> wrote:
>> >> > On Thu, May 26, 2011 at 12:12:22PM +0200, Martin Sandve Alnæs wrote:
>> >> >> What is the prefix in this line?
>> >> >>
>> >> >> (self._compiled_form, module, self.form_data, prefix) = \
>> >> >> jit(form,
>> >> >> form_compiler_parameters,
>> >> >> common_cell)
>> >> >
>> >> > It's the prefix used by the JIT compiler for the generated code files.
>> >> > For FFC, it is set to
>> >> >
>> >> > prefix = "ffc_form_" + jit_object.signature()
>> >>
>> >> Why is it returned from jit? What is it used for?
>> >
>> > It is used in the FFC JIT compiler for elements. This relies on
>> > creating the simplest possible form and then extracting the element
>> > from it. It wasn't needed before, but turned out to be very useful
>> > (perhaps even necessary) during the recent redesign of the JIT
>> > compiler we went through with the preprocess/caching issues.
>>
>> If it's only used internally in ffc, why is it part of the official
>> jit interface?
>
> Just for convenience. Is it a problem to include it?
Nah. It's just weird with random arguments that have no
definition and no use. Now I just return an arbitrary string,
but ffc could just have handled this internally instead of
changing the interface:
def myjit(...):
return a, b, c, d
def jit(...):
a, b, c, d = myjit(...)
return a, b, c
Martin
Follow ups
References