Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Differentiating Gridap code #447

Closed
mohamed82008 opened this issue Sep 10, 2022 · 39 comments
Closed

Differentiating Gridap code #447

mohamed82008 opened this issue Sep 10, 2022 · 39 comments

Comments

@mohamed82008
Copy link

Gridap is a great example of code that can only be differentiated by Enzyme. The following is a snippet that can be used as a test case. It currently fails. This isn't minimal at all but it would be great to understand why it's failing:

using Pkg
Pkg.add("https://github.com/JuliaTopOpt/TopOptGridap.jl")

using TopOptGridap, Enzyme

f, x = TopOptGridap.get_domain()
g = x -> sum(f(x))
# Enzyme.gradient(Enzyme.ForwardMode(), g, x)
dx = similar(x)
Enzyme.gradient!(Enzyme.ReverseMode(), dx, g, x)
@wsmoses
Copy link
Member

wsmoses commented Sep 11, 2022

Can you post how it is failing, and also try on latest main (and if so, what commit)

@mohamed82008
Copy link
Author

I tried the latest main branch today. For forward mode, I get a segfault after printing a wall of text starting with

not handling more than 6 pointer lookups deep dt:{[]:Pointer, [0,0]:Float@double, [0,8]:Float@double, [0,16]:Float@double, [0,24]:Float@double, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [0,40]:Integer, [0,41]:Integer, [0,42]:Integer, [0,43]:Integer, [0,44]:Integer, [0,45]:Integer, [0,46]:Integer, [0,47]:Integer, [0,48]:Integer, [0,49]:Integer, [0,56]:Integer, [0,57]:Integer, [0,58]:Integer, [0,59]:Integer, [0,60]:Integer, [0,61]:Integer, [0,62]:Integer, [0,63]:Integer, [0,64]:Integer, [0,65]:Integer, [0,66]:Integer, [0,67]:Integer, [0,68]:Integer, [0,69]:Integer, [0,70]:Integer, [0,71]:Integer, [0,72]:Integer, [0,80]:Integer, [0,81]:Integer, [0,82]:Integer, [0,83]:Integer, [0,84]:Integer, [0,85]:Integer, [0,86]:Integer, [0,87]:Integer, [0,88]:Pointer, [0,88,0]:Pointer, [0,88,0,0]:Float@double, [0,88,0,8]:Float@double, [0,88,8]:Integer, [0,88,9]:Integer, [0,88,10]:Integer, [0,88,11]:Integer, [0,88,12]:Integer, [0,88,13]:Integer, [0,88,14]:Integer, [0,88,15]:Integer, [0,88,16]:Integer, [0,88,17]:Integer, [0,88,18]:Integer, [0,88,19]:Integer, [0,88,20]:Integer, [0,88,21]:Integer, [0,88,22]:Integer, [0,88,23]:Integer, [0,88,24]:Integer, [0,88,25]:Integer, [0,88,26]:Integer, [0,88,27]:Integer, [0,88,28]:Integer, [0,88,29]:Integer, [0,88,30]:Integer, [0,88,31]:Integer, [0,88,32]:Integer, [0,88,33]:Integer, [0,88,34]:Integer, [0,88,35]:Integer, [0,88,36]:Integer, [0,88,37]:Integer, [0,88,38]:Integer, [0,88,39]:Integer, [0,88,40]:Integer, [0,96]:Pointer, [0,96,0]:Pointer, [0,96,0,0]:Pointer, [0,96,0,0,0]:Pointer, [0,96,0,0,0,0]:Integer, [0,96,0,0,0,1]:Integer, [0,96,0,0,0,2]:Integer, [0,96,0,0,0,3]:Integer, [0,96,0,0,8]:Integer, [0,96,0,0,9]:Integer, [0,96,0,0,10]:Integer, [0,96,0,0,11]:Integer, [0,96,0,0,12]:Integer, [0,96,0,0,13]:Integer, [0,96,0,0,14]:Integer, [0,96,0,0,15]:Integer, [0,96,0,0,16]:Integer, [0,96,0,0,17]:Integer, [0,96,0,0,18]:Integer, [0,96,0,0,19]:Integer, [0,96,0,0,20]:Integer, [0,96,0,0,21]:Integer, [0,96,0,0,22]:Integer, [0,96,0,0,23]:Integer, [0,96,0,0,24]:Integer, [0,96,0,0,25]:Integer, [0,96,0,0,26]:Integer, [0,96,0,0,27]:Integer, [0,96,0,0,28]:Integer, [0,96,0,0,29]:Integer, [0,96,0,0,30]:Integer, [0,96,0,0,31]:Integer, [0,96,0,0,32]:Integer, [0,96,0,0,33]:Integer, [0,96,0,0,34]:Integer, [0,96,0,0,35]:Integer, [0,96,0,0,36]:Integer, [0,96,0,0,37]:Integer, [0,96,0,0,38]:Integer, [0,96,0,0,39]:Integer, [0,96,0,0,40]:Integer, [0,96,0,8]:Pointer, [0,96,0,8,0]:Pointer, [0,96,0,8,0,0]:Integer, [0,96,0,8,0,1]:Integer, [0,96,0,8,0,2]:Integer, [0,96,0,8,0,3]:Integer, [0,96,0,8,8]:Integer, [0,96,0,8,9]:Integer, [0,96,0,8,10]:Integer, [0,96,0,8,11]:Integer, [0,96,0,8,12]:Integer, [0,96,0,8,13]:Integer, [0,96,0,8,14]:Integer, [0,96,0,8,15]:Integer, [0,96,0,8,16]:Integer, [0,96,0,8,17]:Integer, [0,96,0,8,18]:Integer, [0,96,0,8,19]:Integer, [0,96,0,8,20]:Integer, [0,96,0,8,21]:Integer, [0,96,0,8,22]:Integer, [0,96,0,8,23]:Integer, [0,96,0,8,24]:Integer, [0,96,0,8,25]:Integer, [0,96,0,8,26]:Integer, [0,96,0,8,27]:Integer, [0,96,0,8,28]:Integer, [0,96,0,8,29]:Integer, [0,96,0,8,30]:Integer, [0,96,0,8,31]:Integer, [0,96,0,8,32]:Integer, [0,96,0,8,33]:Integer, [0,96,0,8,34]:Integer, [0,96,0,8,35]:Integer, [0,96,0,8,36]:Integer, [0,96,0,8,37]:Integer, [0,96,0,8,38]:Integer, [0,96,0,8,39]:Integer, [0,96,0,8,40]:Integer, [0,96,8]:Integer, [0,96,9]:Integer, [0,96,10]:Integer, [0,96,11]:Integer, [0,96,12]:Integer, [0,96,13]:Integer, [0,96,14]:Integer, [0,96,15]:Integer, [0,96,16]:Integer, [0,96,17]:Integer, [0,96,18]:Integer, [0,96,19]:Integer, [0,96,20]:Integer, [0,96,21]:Integer, [0,96,22]:Integer, [0,96,23]:Integer, [0,96,24]:Integer, [0,96,25]:Integer, [0,96,26]:Integer, [0,96,27]:Integer, [0,96,28]:Integer, [0,96,29]:Integer, [0,96,30]:Integer, [0,96,31]:Integer, [0,96,32]:Integer, [0,96,33]:Integer, [0,96,34]:Integer, [0,96,35]:Integer, [0,96,36]:Integer, [0,96,37]:Integer, [0,96,38]:Integer, [0,96,39]:Integer, [0,96,40]:Integer, [0,104]:Pointer, [0,104,0]:Pointer, [0,104,0,0]:Integer, [0,104,8]:Integer, [0,104,9]:Integer, [0,104,10]:Integer, [0,104,11]:Integer, [0,104,12]:Integer, [0,104,13]:Integer, [0,104,14]:Integer, [0,104,15]:Integer, [0,104,16]:Integer, [0,104,17]:Integer, [0,104,18]:Integer, [0,104,19]:Integer, [0,104,20]:Integer, [0,104,21]:Integer, [0,104,22]:Integer, [0,104,23]:Integer, [0,104,24]:Integer, [0,104,25]:Integer, [0,104,26]:Integer, [0,104,27]:Integer, [0,104,28]:Integer, [0,104,29]:Integer, [0,104,30]:Integer, [0,104,31]:Integer, [0,104,32]:Integer, [0,104,33]:Integer, [0,104,34]:Integer, [0,104,35]:Integer, [0,104,36]:Integer, [0,104,37]:Integer, [0,104,38]:Integer, [0,104,39]:Integer, [0,104,40]:Integer, [0,112]:Pointer, [0,112,0]:Pointer, [0,112,0,0]:Pointer, [0,112,8]:Integer, [0,112,9]:Integer, [0,112,10]:Integer, [0,112,11]:Integer, [0,112,12]:Integer, [0,112,13]:Integer, [0,112,14]:Integer, [0,112,15]:Integer, [0,112,16]:Integer, [0,112,17]:Integer, [0,112,18]:Integer, [0,112,19]:Integer, [0,112,20]:Integer, [0,112,21]:Integer, [0,112,22]:Integer, [0,112,23]:Integer, [0,112,24]:Integer, [0,112,25]:Integer, [0,112,26]:Integer, [0,112,27]:Integer, [0,112,28]:Integer, [0,112,29]:Integer, [0,112,30]:Integer, [0,112,31]:Integer, [0,112,32]:Integer, [0,112,33]:Integer, [0,112,34]:Integer, [0,112,35]:Integer, [0,112,36]:Integer, [0,112,37]:Integer, [0,112,38]:Integer, [0,112,39]:Integer, [0,112,40]:Integer, [0,120]:Pointer, [0,120,0]:Pointer, [0,120,0,0]:Pointer, [0,120,0,0,0]:Pointer, [0,120,0,0,0,0]:Integer, [0,120,0,0,0,1]:Integer, [0,120,0,0,0,2]:Integer, [0,120,0,0,0,3]:Integer, [0,120,0,0,8]:Integer, [0,120,0,0,9]:Integer, [0,120,0,0,10]:Integer, [0,120,0,0,11]:Integer, [0,120,0,0,12]:Integer, [0,120,0,0,13]:Integer, [0,120,0,0,14]:Integer, [0,120,0,0,15]:Integer, [0,120,0,0,16]:Integer, [0,120,0,0,17]:Integer, [0,120,0,0,18]:Integer, [0,120,0,0,19]:Integer, [0,120,0,0,20]:Integer, [0,120,0,0,21]:Integer, [0,120,0,0,22]:Integer, [0,120,0,0,23]:Integer, [0,120,0,0,24]:Integer, [0,120,0,0,25]:Integer, [0,120,0,0,26]:Integer, [0,120,0,0,27]:Integer, [0,120,0,0,28]:Integer, [0,120,0,0,29]:Integer, [0,120,0,0,30]:Integer, [0,120,0,0,31]:Integer, [0,120,0,0,32]:Integer, [0,120,0,0,33]:Integer, [0,120,0,0,34]:Integer, [0,120,0,0,35]:Integer, [0,120,0,0,36]:Integer, [0,120,0,0,37]:Integer, [0,120,0,0,38]:Integer, [0,120,0,0,39]:Integer, [0,120,0,0,40]:Integer, [0,120,8]:Integer, [0,120,9]:Integer, [0,120,10]:Integer, [0,120,11]:Integer, [0,120,12]:Integer, [0,120,13]:Integer, [0,120,14]:Integer, [0,120,15]:Integer, [0,120,16]:Integer, [0,120,17]:Integer, [0,120,18]:Integer, [0,120,19]:Integer, [0,120,20]:Integer, [0,120,21]:Integer, [0,120,22]:Integer, [0,120,23]:Integer, [0,120,24]:Integer, [0,120,25]:Integer, [0,120,26]:Integer, [0,120,27]:Integer, [0,120,28]:Integer, [0,120,29]:Integer, [0,120,30]:Integer, [0,120,31]:Integer, [0,120,32]:Integer, [0,120,33]:Integer, [0,120,34]:Integer, [0,120,35]:Integer, [0,120,36]:Integer, [0,120,37]:Integer, [0,120,38]:Integer, [0,120,39]:Integer, [0,120,40]:Integer, [0,128]:Pointer, [0,128,0]:Pointer, [0,128,0,0]:Pointer, [0,128,0,0,0]:Pointer, [0,128,0,0,0,0]:Integer, [0,128,0,0,0,1]:Integer, [0,128,0,0,0,2]:Integer, [0,128,0,0,0,3]:Integer, [0,128,0,0,8]:Integer, [0,128,0,0,9]:Integer, [0,128,0,0,10]:Integer, [0,128,0,0,11]:Integer, [0,128,0,0,12]:Integer, [0,128,0,0,13]:Integer, [0,128,0,0,14]:Integer, [0,128,0,0,15]:Integer, [0,128,0,0,16]:Integer, [0,128,0,0,17]:Integer, [0,128,0,0,18]:Integer, [0,128,0,0,19]:Integer, [0,128,0,0,20]:Integer, [0,128,0,0,21]:Integer, [0,128,0,0,22]:Integer, [0,128,0,0,23]:Integer, [0,128,0,0,24]:Integer, [0,128,0,0,25]:Integer, [0,128,0,0,26]:Integer, [0,128,0,0,27]:Integer, [0,128,0,0,28]:Integer, [0,128,0,0,29]:Integer, [0,128,0,0,30]:Integer, [0,128,0,0,31]:Integer, [0,128,0,0,32]:Integer, [0,128,0,0,33]:Integer, [0,128,0,0,34]:Integer, [0,128,0,0,35]:Integer, [0,128,0,0,36]:Integer, [0,128,0,0,37]:Integer, [0,128,0,0,38]:Integer, [0,128,0,0,39]:Integer, [0,128,0,0,40]:Integer, [0,128,8]:Integer, [0,128,9]:Integer, [0,128,10]:Integer, [0,128,11]:Integer, [0,128,12]:Integer, [0,128,13]:Integer, [0,128,14]:Integer, [0,128,15]:Integer, [0,128,16]:Integer, [0,128,17]:Integer, [0,128,18]:Integer, [0,128,19]:Integer, [0,128,20]:Integer, [0,128,21]:Integer, [0,128,22]:Integer, [0,128,23]:Integer, [0,128,24]:Integer, [0,128,25]:Integer, [0,128,26]:Integer, [0,128,27]:Integer, [0,128,28]:Integer, [0,128,29]:Integer, [0,128,30]:Integer, [0,128,31]:Integer, [0,128,32]:Integer, [0,128,33]:Integer, [0,128,34]:Integer, [0,128,35]:Integer, [0,128,36]:Integer, [0,128,37]:Integer, [0,128,38]:Integer, [0,128,39]:Integer, [0,128,40]:Integer, [0,136]:Pointer, [0,136,0]:Pointer, [0,136,0,0]:Pointer, [0,136,8]:Integer, [0,136,9]:Integer, [0,136,10]:Integer, [0,136,11]:Integer, [0,136,12]:Integer, [0,136,13]:Integer, [0,136,14]:Integer, [0,136,15]:Integer, [0,136,16]:Integer, [0,136,17]:Integer, [0,136,18]:Integer, [0,136,19]:Integer, [0,136,20]:Integer, [0,136,21]:Integer, [0,136,22]:Integer, [0,136,23]:Integer, [0,136,24]:Integer, [0,136,25]:Integer, [0,136,26]:Integer, [0,136,27]:Integer, [0,136,28]:Integer, [0,136,29]:Integer, [0,136,30]:Integer, [0,136,31]:Integer, [0,136,32]:Integer, [0,136,33]:Integer, [0,136,34]:Integer, [0,136,35]:Integer, [0,136,36]:Integer, [0,136,37]:Integer, [0,136,38]:Integer, [0,136,39]:Integer, [0,136,40]:Integer, [0,144]:Float@double, [0,152]:Float@double, [0,160]:Float@double, [0,168]:Float@double, [0,176]:Integer, [0,177]:Integer, [0,178]:Integer, [0,179]:Integer, [0,180]:Integer, [0,181]:Integer, [0,182]:Integer, [0,183]:Integer, [0,184]:Integer, [0,185]:Integer, [0,186]:Integer, [0,187]:Integer, [0,188]:Integer, [0,189]:Integer, [0,190]:Integer, [0,191]:Integer, [0,192]:Integer, [0,193]:Integer, [0,200]:Integer, [0,201]:Integer, [0,202]:Integer, [0,203]:Integer, [0,204]:Integer, [0,205]:Integer, [0,206]:Integer, [0,207]:Integer, [0,208]:Integer, [0,209]:Integer, [0,210]:Integer, [0,211]:Integer, [0,212]:Integer, [0,213]:Integer, [0,214]:Integer, [0,215]:Integer, [0,216]:Integer, [0,224]:Integer, [0,225]:Integer, [0,226]:Integer, [0,227]:Integer, [0,228]:Integer, [0,229]:Integer, [0,230]:Integer, [0,231]:Integer, [0,232]:Integer, [0,233]:Integer, [0,234]:Integer, [0,235]:Integer, [0,236]:Integer, [0,237]:Integer, [0,238]:Integer, [0,239]:Integer, [1,0]:Float@double, [1,8]:Float@double, [1,16]:Float@double, [1,24]:Float@double, [1,32]:Integer, [1,33]:Integer, [1,34]:Integer, [1,35]:Integer, [1,36]:Integer, [1,37]:Integer, [1,38]:Integer, [1,39]:Integer, [1,40]:Integer, [1,41]:Integer, [1,42]:Integer, [1,43]:Integer, [1,44]:Integer, [1,45]:Integer, [1,46]:Integer, [1,47]:Integer, [1,48]:Integer, [1,49]:Integer, [1,56]:Integer, [1,57]:Integer, [1,58]:Integer, [1,59]:Integer, [1,60]:Integer, [1,61]:Integer, [1,62]:Integer, [1,63]:Integer, [1,64]:Integer, [1,65]:Integer, [1,66]:Integer, [1,67]:Integer, [1,68]:Integer, [1,69]:Integer, [1,70]:Integer, [1,71]:Integer, [1,72]:Integer, [1,80]:Integer, [1,81]:Integer, [1,82]:Integer, [1,83]:Integer, [1,84]:Integer, [1,85]:Integer, [1,86]:Integer, [1,87]:Integer, [1,88]:Pointer, [1,88,0]:Pointer, [1,88,0,0]:Float@double, [1,88,0,8]:Float@double, [1,88,8]:Integer, [1,88,9]:Integer, [1,88,10]:Integer, [1,88,11]:Integer, [1,88,12]:Integer, [1,88,13]:Integer, [1,88,14]:Integer, [1,88,15]:Integer, [1,88,16]:Integer, [1,88,17]:Integer, [1,88,18]:Integer, [1,88,19]:Integer, [1,88,20]:Integer, [1,88,21]:Integer, [1,88,22]:Integer, [1,88,23]:Integer, [1,88,24]:Integer, [1,88,25]:Integer, [1,88,26]:Integer, [1,88,27]:Integer, [1,88,28]:Integer, [1,88,29]:Integer, [1,88,30]:Integer, [1,88,31]:Integer, [1,88,32]:Integer, [1,88,33]:Integer, [1,88,34]:Integer, [1,88,35]:Integer, [1,88,36]:Integer, [1,88,37]:Integer, [1,88,38]:Integer, [1,88,39]:Integer, [1,88,40]:Integer, [1,96]:Pointer, [1,96,0]:Pointer, [1,96,0,0]:Pointer, [1,96,0,0,0]:Pointer, [1,96,0,0,0,0]:Integer, [1,96,0,0,0,1]:Integer, [1,96,0,0,0,2]:Integer, [1,96,0,0,0,3]:Integer, [1,96,0,0,8]:Integer, [1,96,0,0,9]:Integer, [1,96,0,0,10]:Integer, [1,96,0,0,11]:Integer, [1,96,0,0,12]:Integer, [1,96,0,0,13]:Integer, [1,96,0,0,14]:Integer, [1,96,0,0,15]:Integer, [1,96,0,0,16]:Integer, [1,96,0,0,17]:Integer, [1,96,0,0,18]:Integer, [1,96,0,0,19]:Integer, [1,96,0,0,20]:Integer, [1,96,0,0,21]:Integer, [1,96,0,0,22]:Integer, [1,96,0,0,23]:Integer, [1,96,0,0,24]:Integer, [1,96,0,0,25]:Integer, [1,96,0,0,26]:Integer, [1,96,0,0,27]:Integer, [1,96,0,0,28]:Integer, [1,96,0,0,29]:Integer, [1,96,0,0,30]:Integer, [1,96,0,0,31]:Integer, [1,96,0,0,32]:Integer, [1,96,0,0,33]:Integer, [1,96,0,0,34]:Integer, [1,96,0,0,35]:Integer, [1,96,0,0,36]:Integer, [1,96,0,0,37]:Integer, [1,96,0,0,38]:Integer, [1,96,0,0,39]:Integer, [1,96,0,0,40]:Integer, [1,96,0,8]:Pointer, [1,96,0,8,0]:Pointer, [1,96,0,8,0,0]:Integer, [1,96,0,8,0,1]:Integer, [1,96,0,8,0,2]:Integer, [1,96,0,8,0,3]:Integer, [1,96,0,8,8]:Integer, [1,96,0,8,9]:Integer, [1,96,0,8,10]:Integer, [1,96,0,8,11]:Integer, [1,96,0,8,12]:Integer, [1,96,0,8,13]:Integer, [1,96,0,8,14]:Integer, [1,96,0,8,15]:Integer, [1,96,0,8,16]:Integer, [1,96,0,8,17]:Integer, [1,96,0,8,18]:Integer, [1,96,0,8,19]:Integer, [1,96,0,8,20]:Integer, [1,96,0,8,21]:Integer, [1,96,0,8,22]:Integer, [1,96,0,8,23]:Integer, [1,96,0,8,24]:Integer, [1,96,0,8,25]:Integer, [1,96,0,8,26]:Integer, [1,96,0,8,27]:Integer, [1,96,0,8,28]:Integer, [1,96,0,8,29]:Integer, [1,96,0,8,30]:Integer, [1,96,0,8,31]:Integer, [1,96,0,8,32]:Integer, [1,96,0,8,33]:Integer, [1,96,0,8,34]:Integer, [1,96,0,8,35]:Integer, [1,96,0,8,36]:Integer, [1,96,0,8,37]:Integer, [1,96,0,8,38]:Integer, [1,96,0,8,39]:Integer, [1,96,0,8,40]:Integer, [1,96,8]:Integer, [1,96,9]:Integer, [1,96,10]:Integer, [1,96,11]:Integer, [1,96,12]:Integer, [1,96,13]:Integer, [1,96,14]:Integer, [1,96,15]:Integer, [1,96,16]:Integer, [1,96,17]:Integer, [1,96,18]:Integer, [1,96,19]:Integer, [1,96,20]:Integer, [1,96,21]:Integer, [1,96,22]:Integer, [1,96,23]:Integer, [1,96,24]:Integer, [1,96,25]:Integer, [1,96,26]:Integer, [1,96,27]:Integer, [1,96,28]:Integer, [1,96,29]:Integer, [1,96,30]:Integer, [1,96,31]:Integer, [1,96,32]:Integer, [1,96,33]:Integer, [1,96,34]:Integer, [1,96,35]:Integer, [1,96,36]:Integer, [1,96,37]:Integer, [1,96,38]:Integer, [1,96,39]:Integer, [1,96,40]:Integer, [1,104]:Pointer, [1,104,0]:Pointer, [1,104,0,0]:Integer, [1,104,8]:Integer, [1,104,9]:Integer, [1,104,10]:Integer, [1,104,11]:Integer, [1,104,12]:Integer, [1,104,13]:Integer, [1,104,14]:Integer, [1,104,15]:Integer, [1,104,16]:Integer, [1,104,17]:Integer, [1,104,18]:Integer, [1,104,19]:Integer, [1,104,20]:Integer, [1,104,21]:Integer, [1,104,22]:Integer, [1,104,23]:Integer, [1,104,24]:Integer, [1,104,25]:Integer, [1,104,26]:Integer, [1,104,27]:Integer, [1,104,28]:Integer, [1,104,29]:Integer, [1,104,30]:Integer, [1,104,31]:Integer, [1,104,32]:Integer, [1,104,33]:Integer, [1,104,34]:Integer, [1,104,35]:Integer, [1,104,36]:Integer, [1,104,37]:Integer, [1,104,38]:Integer, [1,104,39]:Integer, [1,104,40]:Integer, [1,112]:Pointer, [1,112,0]:Pointer, [1,112,0,0]:Pointer, [1,112,8]:Integer, [1,112,9]:Integer, [1,112,10]:Integer, [1,112,11]:Integer, [1,112,12]:Integer, [1,112,13]:Integer, [1,112,14]:Integer, [1,112,15]:Integer, [1,112,16]:Integer, [1,112,17]:Integer, [1,112,18]:Integer, [1,112,19]:Integer, [1,112,20]:Integer, [1,112,21]:Integer, [1,112,22]:Integer, [1,112,23]:Integer, [1,112,24]:Integer, [1,112,25]:Integer, [1,112,26]:Integer, [1,112,27]:Integer, [1,112,28]:Integer, [1,112,29]:Integer, [1,112,30]:Integer, [1,112,31]:Integer, [1,112,32]:Integer, [1,112,33]:Integer, [1,112,34]:Integer, [1,112,35]:Integer, [1,112,36]:Integer, [1,112,37]:Integer, [1,112,38]:Integer, [1,112,39]:Integer, [1,112,40]:Integer, [1,120]:Pointer, [1,120,0]:Pointer, [1,120,0,0]:Pointer, [1,120,0,0,0]:Pointer, [1,120,0,0,0,0]:Integer, [1,120,0,0,0,1]:Integer, [1,120,0,0,0,2]:Integer, [1,120,0,0,0,3]:Integer, [1,120,0,0,8]:Integer, [1,120,0,0,9]:Integer, [1,120,0,0,10]:Integer, [1,120,0,0,11]:Integer, [1,120,0,0,12]:Integer, [1,120,0,0,13]:Integer, [1,120,0,0,14]:Integer, [1,120,0,0,15]:Integer, [1,120,0,0,16]:Integer, [1,120,0,0,17]:Integer, [1,120,0,0,18]:Integer, [1,120,0,0,19]:Integer, [1,120,0,0,20]:Integer, [1,120,0,0,21]:Integer, [1,120,0,0,22]:Integer, [1,120,0,0,23]:Integer, [1,120,0,0,24]:Integer, [1,120,0,0,25]:Integer, [1,120,0,0,26]:Integer, [1,120,0,0,27]:Integer, [1,120,0,0,28]:Integer, [1,120,0,0,29]:Integer, [1,120,0,0,30]:Integer, [1,120,0,0,31]:Integer, [1,120,0,0,32]:Integer, [1,120,0,0,33]:Integer, [1,120,0,0,34]:Integer, [1,120,0,0,35]:Integer, [1,120,0,0,36]:Integer, [1,120,0,0,37]:Integer, [1,120,0,0,38]:Integer, [1,120,0,0,39]:Integer, [1,120,0,0,40]:Integer, [1,120,8]:Integer, [1,120,9]:Integer, [1,120,10]:Integer, [1,120,11]:Integer, [1,120,12]:Integer, [1,120,13]:Integer, [1,120,14]:Integer, [1,120,15]:Integer, [1,120,16]:Integer, [1,120,17]:Integer, [1,120,18]:Integer, [1,120,19]:Integer, [1,120,20]:Integer, [1,120,21]:Integer, [1,120,22]:Integer, [1,120,23]:Integer, [1,120,24]:Integer, [1,120,25]:Integer, [1,120,26]:Integer, [1,120,27]:Integer, [1,120,28]:Integer, [1,120,29]:Integer, [1,120,30]:Integer, [1,120,31]:Integer, [1,120,32]:Integer, [1,120,33]:Integer, [1,120,34]:Integer, [1,120,35]:Integer, [1,120,36]:Integer, [1,120,37]:Integer, [1,120,38]:Integer, [1,120,39]:Integer, [1,120,40]:Integer, [1,128]:Pointer, [1,128,0]:Pointer, [1,128,0,0]:Pointer, [1,128,0,0,0]:Pointer, [1,128,0,0,0,0]:Integer, [1,128,0,0,0,1]:Integer, [1,128,0,0,0,2]:Integer, [1,128,0,0,0,3]:Integer, [1,128,0,0,8]:Integer, [1,128,0,0,9]:Integer, [1,128,0,0,10]:Integer, [1,128,0,0,11]:Integer, [1,128,0,0,12]:Integer, [1,128,0,0,13]:Integer, [1,128,0,0,14]:Integer, [1,128,0,0,15]:Integer, [1,128,0,0,16]:Integer, [1,128,0,0,17]:Integer, [1,128,0,0,18]:Integer, [1,128,0,0,19]:Integer, [1,128,0,0,20]:Integer, [1,128,0,0,21]:Integer, [1,128,0,0,22]:Integer, [1,128,0,0,23]:Integer, [1,128,0,0,24]:Integer, [1,128,0,0,25]:Integer, [1,128,0,0,26]:Integer, [1,128,0,0,27]:Integer, [1,128,0,0,28]:Integer, [1,128,0,0,29]:Integer, [1,128,0,0,30]:Integer, [1,128,0,0,31]:Integer, [1,128,0,0,32]:Integer, [1,128,0,0,33]:Integer, [1,128,0,0,34]:Integer, [1,128,0,0,35]:Integer, [1,128,0,0,36]:Integer, [1,128,0,0,37]:Integer, [1,128,0,0,38]:Integer, [1,128,0,0,39]:Integer, [1,128,0,0,40]:Integer, [1,128,8]:Integer, [1,128,9]:Integer, [1,128,10]:Integer, [1,128,11]:Integer, [1,128,12]:Integer, [1,128,13]:Integer, [1,128,14]:Integer, [1,128,15]:Integer, [1,128,16]:Integer, [1,128,17]:Integer, [1,128,18]:Integer, 

For reverse mode, I get the following error:

ERROR: Duplicated Returns not yet handled
Stacktrace:
 [1] autodiff
   @ ~/.julia/packages/Enzyme/M2q6i/src/Enzyme.jl:294 [inlined]
 [2] autodiff(mode::Enzyme.ReverseMode, f::var"#1#2", args::Duplicated{Vector{Float64}})
   @ Enzyme ~/.julia/packages/Enzyme/M2q6i/src/Enzyme.jl:330
 [3] gradient!(#unused#::Enzyme.ReverseMode, dx::Vector{Float64}, f::Function, x::Vector{Float64})
   @ Enzyme ~/.julia/packages/Enzyme/M2q6i/src/Enzyme.jl:628
 [4] top-level scope
   @ REPL[10]:1

I am on an M1 machine.

@wsmoses
Copy link
Member

wsmoses commented Sep 11, 2022

Can you post the entire error log for forward mode.

The reverse mode error indicates that the return of the function is not a float or floating-point like (perhaps because of a type instability).

@mohamed82008
Copy link
Author

Can you post the entire error log for forward mode.

forwardmode_stacktrace.txt

@mohamed82008
Copy link
Author

I used a type assertion to force at least the final output type to be inferred. I got the following error.

reversemode_stacktrace.txt

@wsmoses
Copy link
Member

wsmoses commented Sep 12, 2022

From forward mode:

_ZN16LateLowerGCFrame13NumberAllBaseER5StatePN4llvm5ValueE at /Applications/Julia-1.8.app/Contents/Resources/julia/lib/julia/libjulia-codegen.1.8.dylib (unknown line)

This is GC related. We'll need a minimal reproducer to fix, if you're up to minimizing it to one.

@wsmoses
Copy link
Member

wsmoses commented Sep 26, 2022

@mohamed82008 did you get a chance to minimize this?

@mohamed82008
Copy link
Author

Not yet. I don't think I will be able to find the time for a few weeks.

@wsmoses
Copy link
Member

wsmoses commented Oct 4, 2022

The forward mode issue you see seems to be a GC error coming from batch mode, setting the batch size to 1, we get a different error:

Enzyme.gradient(Enzyme.ForwardMode(), g, x, Val(1))

ERROR: LoadError: UndefRefError: access to undefined reference
Stacktrace:
 [1] getindex(t::Tuple, i::Int64)
   @ Base ./tuple.jl:29
in expression starting at /home/wmoses/git/Enzyme.jl/ga2.jl:5

@wsmoses
Copy link
Member

wsmoses commented Oct 4, 2022

The current state of reverse mode is:

┌ Warning: Returned rooting not fully handled, segfault likely
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/07qaN/src/utils.jl:35

signal (11): Segmentation fault
in expression starting at /home/wmoses/git/Enzyme.jl/ga.jl:7
ijl_isa at /cache/build/default-amdci5-0/julialang/julia-release-1-dot-8/src/subtype.c:2064
unknown function (ip: 0x7f34456c9503)
unknown function (ip: 0x7f34456ca555)
Allocations: 251758458 (Pool: 251629232; Big: 129226); GC: 161

...which per the warning...I suppose is fair (it did require a quick Enzyme proper fix here: EnzymeAD/Enzyme#879).

Again, if you are able to minimize these to a root issue, we'll be able to debug/fix it. (ideally a pure call to autodiff/etc, as little code as possible that causes the issue, and ideally no or minimal external dependencies)

@mohamed82008
Copy link
Author

Thanks for looking into this. Your ask is reasonable but can be very hard for the kind of work I need Enzyme for. The function is discretising a PDE, assembling a sparse matrix, solving a linear system and then doing some post-processing of the output. A minimal example would require snipping this pipeline and doing an Enzyme call to bisect-find the problematic code. That's a lot of work especially without a helpful stacktrace although I understand segfault stacktraces are not really helpful in general so it's not Enzyme's fault.

@vchuravy
Copy link
Member

vchuravy commented Oct 12, 2022

@wsmoses you mentioned in chat that you still hit a GC error here?

I get a proper runtime error:

ERROR: LoadError: Duplicated Returns not yet handled
Stacktrace:
 [1] autodiff
   @ ~/src/Enzyme/src/Enzyme.jl:197 [inlined]
 [2] autodiff(mode::EnzymeCore.ReverseMode, f::var"#1#2", args::Duplicated{Vector{Float64}})
   @ Enzyme ~/src/Enzyme/src/Enzyme.jl:236
 [3] gradient!(#unused#::EnzymeCore.ReverseMode, dx::Vector{Float64}, f::Function, x::Vector{Float64})
   @ Enzyme ~/src/Enzyme/src/Enzyme.jl:553
 [4] top-level scope
   @ ~/src/Enzyme/issue447.jl:7
in expression starting at /home/vchuravy/src/Enzyme/issue447.jl:7

But no GC error? Can you post your reproducer?

Edit: Okay I see the GC error on fwddiff

@wsmoses
Copy link
Member

wsmoses commented Oct 12, 2022

@vchuravy

using Pkg
Pkg.add(url="https://github.com/JuliaTopOpt/TopOptGridap.jl")

using TopOptGridap, Enzyme

f, x = TopOptGridap.get_domain()
g = x -> sum(f(x))::Float64
# Enzyme.gradient(Enzyme.ForwardMode(), g, x)
dx = similar(x)
Enzyme.gradient!(Enzyme.ReverseMode(), dx, g, x)

@vchuravy
Copy link
Member

For the FWD mode failure

Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007fb690adb52f in ijl_isa (x=0x21, t=0x7fb67ad10720 <jl_system_image_data+1529120>) at /home/vchuravy/src/julia/src/subtype.c:2067
warning: Source file is more recent than executable.
2067	        if (((jl_datatype_t*)t)->name == jl_type_typename)
(rr) bt
#0  0x00007fb690adb52f in ijl_isa (x=0x21, t=0x7fb67ad10720 <jl_system_image_data+1529120>) at /home/vchuravy/src/julia/src/subtype.c:2067
#1  0x00007fb69083e5f8 in Typeof () at boot.jl:243
#2  wrap_annotated_args () at /home/vchuravy/src/Enzyme/src/compiler.jl:516
#3  julia_runtime_generic_fwd_8197 (fn=0x0, arg_ptr=..., shadow_ptr=..., activity_ptr=<optimized out>, width=...) at /home/vchuravy/src/Enzyme/src/compiler.jl:618
#4  0x00007fb69083e4b2 in julia_scatter_free_and_dirichlet_values_8120 (f=..., free_values=<optimized out>, dirichlet_values=<optimized out>)
    at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/UnconstrainedFESpaces.jl:76
#5  0x00007fb690841700 in scatter_free_and_dirichlet_values () at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/TrialFESpaces.jl:110
#6  julia_FEFunction_8117 (fs=..., free_values=<optimized out>, dirichlet_values=<optimized out>)
    at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/SingleFieldFESpaces.jl:163
#7  0x00007fb690841700 in julia_FEFunction_8117 (fs=..., free_values=<optimized out>, dirichlet_values=<optimized out>)
#8  0x00007fb6787fda19 in macro expansion () at /home/vchuravy/src/Enzyme/src/compiler.jl:6162
#9  julia_enzyme_call_8241 (fptr=0, tt=<optimized out>, rt=<optimized out>, f=0x21, df=..., args...=...) at /home/vchuravy/src/Enzyme/src/compiler.jl:5900
#10 0x00007fb6787fdaad in jfptr_enzyme_call_8242 ()
#11 0x00007fb690a4e535 in _jl_invoke (F=0x7fb648e53658, args=0x7ffdd3f0a698, nargs=13, mfunc=0x7fb658146db0, world=32452) at /home/vchuravy/src/julia/src/gf.c:2367
#12 0x00007fb690a4eeed in ijl_apply_generic (F=0x7fb648e53658, args=0x7ffdd3f0a698, nargs=13) at /home/vchuravy/src/julia/src/gf.c:2549
#13 0x00007fb690a5e62d in jl_apply (args=0x7ffdd3f0a690, nargs=14) at /home/vchuravy/src/julia/src/julia.h:1838
#14 0x00007fb690a61eb0 in do_apply (args=0x7ffdd3f0a8d0, nargs=3, iterate=0x7fb67ae6f5b0 <jl_system_image_data+2966448>) at /home/vchuravy/src/julia/src/builtins.c:730
#15 0x00007fb690a61f3d in jl_f__apply_iterate (F=0x0, args=0x7ffdd3f0a8c8, nargs=4) at /home/vchuravy/src/julia/src/builtins.c:738
#16 0x00007fb6787fd74f in japi1_ForwardModeThunk_8239 (thunk=..., args...=0x7fb64fbd30c0) at /home/vchuravy/src/Enzyme/src/compiler.jl:5880
#17 0x00007fb690a4d8cd in jl_fptr_args (f=0x7fb64e309f90, args=0x7ffdd3f0aaa8, nargs=3, m=0x7fb6501f1f90) at /home/vchuravy/src/julia/src/gf.c:2128
#18 0x00007fb690a4e535 in _jl_invoke (F=0x7fb64e309f90, args=0x7ffdd3f0aaa8, nargs=3, mfunc=0x7fb658128e70, world=32452) at /home/vchuravy/src/julia/src/gf.c:2367
#19 0x00007fb690a4eeed in ijl_apply_generic (F=0x7fb64e309f90, args=0x7ffdd3f0aaa8, nargs=3) at /home/vchuravy/src/julia/src/gf.c:2549
#20 0x00007fb690a5e62d in jl_apply (args=0x7ffdd3f0aaa0, nargs=4) at /home/vchuravy/src/julia/src/julia.h:1838
#21 0x00007fb690a61eb0 in do_apply (args=0x7ffdd3f0acc0, nargs=2, iterate=0x7fb67ae6f5b0 <jl_system_image_data+2966448>) at /home/vchuravy/src/julia/src/builtins.c:730
#22 0x00007fb690a61f3d in jl_f__apply_iterate (F=0x0, args=0x7ffdd3f0acb8, nargs=3) at /home/vchuravy/src/julia/src/builtins.c:738
#23 0x00007fb6904383fb in julia_runtime_generic_fwd_7063 (fn=0x0, arg_ptr=..., shadow_ptr=..., activity_ptr=<optimized out>, width=...)
    at /home/vchuravy/src/Enzyme/src/compiler.jl:636
#24 0x00007fb690437c93 in julia_FEFunction_6341 (fe=..., free_values=<optimized out>) at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/SingleFieldFESpaces.jl:170
#25 0x00007fb69043263a in EvaluationFunction () at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/FESpaceInterface.jl:113
#26 zero () at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/FESpaceInterface.jl:120
#27 julia_AffineFEOperator_6334 (weakform=..., trial=..., test=..., assem=...) at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/AffineFEOperators.jl:35
#28 0x00007fb690445f81 in AffineFEOperator () at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/AffineFEOperators.jl:47
#29 AffineFEOperator () at /home/vchuravy/.julia/packages/Gridap/TyUsh/src/FESpaces/AffineFEOperators.jl:51
#30 julia_displacements_6325 (cell_param=<optimized out>) at /home/vchuravy/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:42
#31 0x00007fb690445f81 in julia_displacements_6325 (cell_param=<optimized out>)
#32 0x00007fb67874660b in macro expansion () at /home/vchuravy/src/Enzyme/src/compiler.jl:6162
#33 enzyme_call () at /home/vchuravy/src/Enzyme/src/compiler.jl:5900
#34 julia_ForwardModeThunk_7380 (thunk=<error reading variable: Cannot access memory at address 0x19>, args...=...) at /home/vchuravy/src/Enzyme/src/compiler.jl:5880
#35 0x00007fb678746694 in jfptr_ForwardModeThunk_7381 ()
#36 0x00007fb690a4e535 in _jl_invoke (F=0x7fb64b290450, args=0x7ffdd3f0bd18, nargs=1, mfunc=0x7fb649f1d0a0, world=32452) at /home/vchuravy/src/julia/src/gf.c:2367
#37 0x00007fb690a4eeed in ijl_apply_generic (F=0x7fb64b290450, args=0x7ffdd3f0bd18, nargs=1) at /home/vchuravy/src/julia/src/gf.c:2549
#38 0x00007fb690a5e62d in jl_apply (args=0x7ffdd3f0bd10, nargs=2) at /home/vchuravy/src/julia/src/julia.h:1838
--Type <RET> for more, q to quit, c to continue without paging--c
#39 0x00007fb690a61eb0 in do_apply (args=0x7ffdd3f0bf10, nargs=2, iterate=0x7fb67ae6f5b0 <jl_system_image_data+2966448>) at /home/vchuravy/src/julia/src/builtins.c:730
#40 0x00007fb690a61f3d in jl_f__apply_iterate (F=0x0, args=0x7ffdd3f0bf08, nargs=3) at /home/vchuravy/src/julia/src/builtins.c:738
#41 0x00007fb6915c35c9 in julia_runtime_generic_fwd_5702 (fn=0x0, arg_ptr=..., shadow_ptr=..., activity_ptr=<optimized out>, width=...) at /home/vchuravy/src/Enzyme/src/compiler.jl:636
#42 0x00007fb6915c4f4a in julia_#1_4928 (x=<optimized out>) at /home/vchuravy/src/Enzyme/issue447.jl:4
#43 0x00007fb6915c4f4a in julia_#1_4928 (x=<optimized out>)
#44 0x00007fb678701794 in macro expansion () at /home/vchuravy/src/Enzyme/src/compiler.jl:6162
#45 enzyme_call () at /home/vchuravy/src/Enzyme/src/compiler.jl:5900
#46 ForwardModeThunk () at /home/vchuravy/src/Enzyme/src/compiler.jl:5880
#47 autodiff () at /home/vchuravy/src/Enzyme/src/Enzyme.jl:314
#48 #37 () at /home/vchuravy/src/Enzyme/src/Enzyme.jl:629
#49 0x00007fb678701794 in #193 ()
#50 iterate () at generator.jl:47
#51 julia_collect_6225 (itr=...) at array.jl:787
#52 0x00007fb678701d65 in julia__ntuple_6222 (f=..., n=100) at ntuple.jl:37
#53 0x00007fb678701fe7 in julia_ntuple_6164 (f=..., n=140421721294624) at ntuple.jl:19
#54 0x00007fb678702935 in jfptr_ntuple_6165 ()
#55 0x00007fb690a4e535 in _jl_invoke (F=0x7fb67b5838e0 <jl_system_image_data+10389216>, args=0x7ffdd3f0cbe0, nargs=2, mfunc=0x7fb65a340ce0, world=32452) at /home/vchuravy/src/julia/src/gf.c:2367
#56 0x00007fb690a4eeed in ijl_apply_generic (F=0x7fb67b5838e0 <jl_system_image_data+10389216>, args=0x7ffdd3f0cbe0, nargs=2) at /home/vchuravy/src/julia/src/gf.c:2549
#57 0x00007fb678b0931a in julia_#gradient#36_3879 (shadow=..., f=0x0, x=<error reading variable: Cannot access memory at address 0x0>) at /home/vchuravy/src/Enzyme/src/Enzyme.jl:628
#58 0x00007fb678b093b9 in jfptr_#gradient#36_3880 ()

@vchuravy
Copy link
Member

(rr) up
#2  wrap_annotated_args () at /home/vchuravy/src/Enzyme/src/compiler.jl:516
516	        T = Core.Typeof(p)
(rr) list
511	    __activity = Base.unsafe_wrap(Array, activity_ptr, length(arg_ptr))
512	    args = Any[]
513	    
514	    for i in start:length(arg_ptr)
515	        p = arg_ptr[i]
516	        T = Core.Typeof(p)
517	        if __activity[i] != 0 && !(GPUCompiler.isghosttype(T) || Core.Compiler.isconstType(T))
518	            if !forwardMode && (T <: AbstractFloat || T <: Complex{<:AbstractFloat})
519	                push!(args, Active(p))
520	            else

So whatever p is wrong.

@wsmoses
Copy link
Member

wsmoses commented Feb 17, 2023

@vchuravy the reverse mode still errs in GC with the latest jll. Forward mode is now a different but still error:

[2218940] signal (11.1): Segmentation fault
in expression starting at REPL[9]:1
typekeyvalue_hash at /cache/build/default-amdci4-7/julialang/julia-release-1-dot-9/src/jltypes.c:1222 [inlined]
lookup_typevalue at /cache/build/default-amdci4-7/julialang/julia-release-1-dot-9/src/jltypes.c:754
jl_inst_arg_tuple_type at /cache/build/default-amdci4-7/julialang/julia-release-1-dot-9/src/jltypes.c:1670
arg_type_tuple at /cache/build/default-amdci4-7/julialang/julia-release-1-dot-9/src/gf.c:2059 [inlined]
jl_lookup_generic_ at /cache/build/default-amdci4-7/julialang/julia-release-1-dot-9/src/gf.c:2807 [inlined]
ijl_apply_generic at /cache/build/default-amdci4-7/julialang/julia-release-1-dot-9/src/gf.c:2859
unknown function (ip: 0x7fa76aa61623)
Allocations: 183686838 (Pool: 183609914; Big: 76924); GC: 275
Segmentation fault (core dumped)

@mohamed82008 have you had a chance to minimize this yet? If so, we can attempt to fix and get this working.

@mohamed82008
Copy link
Author

I can try to spend time on it next weekend.

@wsmoses
Copy link
Member

wsmoses commented Mar 6, 2023

any luck @mohamed82008

@mohamed82008
Copy link
Author

Not yet, got busy with something else. Sorry for the delay.

@wsmoses
Copy link
Member

wsmoses commented Apr 9, 2023

bump @mohamed82008

@wsmoses
Copy link
Member

wsmoses commented Apr 10, 2023

Reverse mode seems to no longer error on main (instead a runtime unimplemented jl_f_apply_iterate). Forward mode remains the segmentation fault.

@wsmoses
Copy link
Member

wsmoses commented Apr 10, 2023

using Enzyme
Enzyme.API.printall!(true)

using Gridap

function get_domain()
    #domain = (0, 160, 0, 40)
    #partition = (160, 40)
    domain = (0, 1, 0, 1)
    partition = (10, 10)
    model = CartesianDiscreteModel(domain, partition)
    labels = get_face_labeling(model)
    add_tag_from_tags!(labels, "diri_0", [1, 3, 7])
    add_tag_from_tags!(labels, "diri_1", [2, 4, 8])

    order = 1
    E = 70.0e9
    ν = 0.33
    λ = (E * ν) / ((1 + ν) * (1 - 2 * ν))
    μ = E / (2 * (1 + ν))
    σ(ε) = λ * tr(ε) * one(ε) + 2 * μ * ε

    degree = 2 * order
    Ω = Triangulation(model)
    dΩ = Measure(Ω, degree)
    T = Float64
    reffe = ReferenceFE(lagrangian, VectorValue{2, T}, order)
    V0 = TestFESpace(
        model, reffe;
        vector_type = Vector{T},
        conformity = :H1,
        dirichlet_tags = ["diri_0", "diri_1"],
        dirichlet_masks = [(true, false), (true, true)],
    )
    g1(x) = VectorValue(convert(T, 0.005), convert(T, 0.0))
    g2(x) = VectorValue(convert(T, 0.0), convert(T, 0.0))
    U = TrialFESpace(V0, [g1, g2])
    l(v) = zero(T)

    function displacements(cell_param)
        ρ = CellField(cell_param, Ω)
        a(u, v) = ρ * ε(v)  ε(u))
        op = AffineFEOperator(a, l, U, V0)
        solver = LinearFESolver()
        uh = solve(solver, op)
        return uh.free_values[1]
    end, rand(num_cells(model))
end

f, x = get_domain()
# Enzyme.gradient(Enzyme.ForwardMode(), g, x)
dx = similar(x)
Enzyme.autodiff(Forward, f, Duplicated(x, dx))

@mohamed82008 yeah I have no idea what is going on here, but if you're able to make this smaller/simpler while still triggering the segfault, I can try to fix it.

@mohamed82008
Copy link
Author

Thanks Billy. I am not very proud of the many broken promises to look into this. I will try to narrow it down when I can though.

@wsmoses
Copy link
Member

wsmoses commented Apr 24, 2023

Should be solved by #772 please reopen if it persists.

@wsmoses wsmoses closed this as completed Apr 24, 2023
@mohamed82008
Copy link
Author

Did you actually test this works? It doesn't on my machine.

@wsmoses
Copy link
Member

wsmoses commented Apr 28, 2023

I did (we fixed a GC error, which then stopped this error from reproducing after merging).

If it's still erroring for you I definitely need a MWE since it no longer reproduces for me.

@wsmoses wsmoses reopened this Apr 28, 2023
@mohamed82008
Copy link
Author

Well that's odd I tested it on Mac M1 and WSL. Perhaps I need to test it on a more standard setup.

@wsmoses
Copy link
Member

wsmoses commented Jun 23, 2023

significant GC related fix has now landed on main. Retry to see if resolved?

unfortunately again I could not reproduce your issue even without that fix

@mohamed82008
Copy link
Author

I tried it on my M1 and it still fails. Let me try it again on Linux and Windows and get back to you.

@wsmoses
Copy link
Member

wsmoses commented Jun 26, 2023

Can you paste the error and also confirm you're on the latest commit?

@wsmoses
Copy link
Member

wsmoses commented Jul 7, 2023

Several additional GC fixes have been landed that allow turing to run.

Again retry, and see if it fixed for you (and if not we really need something to go on to try to fix).

@mohamed82008
Copy link
Author

mohamed82008 commented Jul 7, 2023

On M1 and latest Enzyme#main and Julia 1.10, I get the following error when calling the code in #447 (comment)

mod = ; ModuleID = 'start'
source_filename = "start"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128-ni:10:11:12:13"
target triple = "arm64-apple-darwin22.4.0"

@_j_const1 = private unnamed_addr constant double 0.000000e+00

; Function Attrs: noinline
define dso_local swiftcc nonnull {} addrspace(10)* @julia_string_4147({}*** nonnull swiftself %0, {} addrspace(10)* noundef nonnull %1) #0 !dbg !10 {
top:
  %a = alloca {} addrspace(10)*, align 8
  %2 = call {}*** @julia.get_pgcstack()
  store {} addrspace(10)* null, {} addrspace(10)** %a, align 8
  %3 = bitcast {}*** %2 to {}**
  %current_task = getelementptr inbounds {}*, {}** %3, i64 -14
  %4 = bitcast {}** %current_task to i64*
  %world_age = getelementptr inbounds i64, i64* %4, i64 15
  store {} addrspace(10)* %1, {} addrspace(10)** %a, align 8
  %5 = bitcast {}*** %2 to {}**
  %current_task1 = getelementptr inbounds {}*, {}** %5, i64 -14
  %ptls_field = getelementptr inbounds {}*, {}** %current_task1, i64 16
  %ptls_load = lIncorrect number of arguments passed to called function!
  %3 = call swiftcc {} addrspace(10)* @julia_displacements_4142_inner({}*** %2, { [1 x {} addrspace(10)*], { {} addrspace(10)*, { {} addrspace(10)*, i64, i64, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, i64, [5 x {} addrspace(10)*] } }, { {} addrspace(10)*, i64, i64, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, i64, [5 x {} addrspace(10)*] }, { { { [1 x { [1 x [2 x double]], [2 x double], [2 x i64], [2 x i8] }], [1 x [2 x i64]], { i8, [1 x [1 x i64]] } }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, [3 x {} addrspace(10)*] }, { [1 x { [1 x [2 x double]], [2 x double], [2 x i64], [2 x i8] }], [1 x [2 x i64]], { i8, [1 x [1 x i64]] } }, [1 x i64] }, [2 x double] } addrspace(11)* %1), !dbg !394
LLVM.API.LLVMVerifyFunction(wrapper_f, LLVM.API.LLVMPrintMessageAction) = 1
wrapper_f = ; Function Attrs: returns_twice
define {} addrspace(10)* @julia_displacements_4142_inner.1({}** %0, { [1 x {} addrspace(10)*], { {} addrspace(10)*, { {} addrspace(10)*, i64, i64, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, i64, [5 x {} addrspace(10)*] } }, { {} addrspace(10)*, i64, i64, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, i64, [5 x {} addrspace(10)*] }, { { { [1 x { [1 x [2 x double]], [2 x double], [2 x i64], [2 x i8] }], [1 x [2 x i64]], { i8, [1 x [1 x i64]] } }, { {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)* }, [3 x {} addrspace(10)*] }, { [1 x { [1 x [2 x double]], [2 x double], [2 x i64], [2 x i8] }], [1 x [2 x i64]], { i8, [1 x [1 x i64]] } }, [1 x i64] }, [2 x double] } addrspace(11)* nocapture noundef nonnull readonly align 8 dereferenceable(512) %1) #13 !dbg !57 {
entry:
  %2 = alloca {}*(parmsRemoved, retRemoved, prargs) = (UInt64[], false, Any[(cc = GPUCompiler.BITS_REF, typ = var"#displacements#5"{var"#l#4"{DataType}, TrialFESpace{Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}}, Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}, Gridap.Geometry.BodyFittedTriangulation{2, 2, CartesianDiscreteModel{2, Float64, typeof(identity)}, CartesianGrid{2, Float64, typeof(identity)}, Gridap.Arrays.IdentityVector{Int64}}, var"#σ#1"{Float64, Float64}}, arg_i = 1, codegen = (typ = {}***, i = 1)), (cc = GPUCompiler.BITS_REF, typ = Vector{Float64}, arg_i = 2, codegen = (typ = { [1 x {} addrspace(10)*], { {} addrspace(10)*, { {} addrspace(10)*, i64, i64, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, {} addrspace(10)*, i64, [5 x {} addrspace(10)*] } }, { {} addrspace(10)*, i64, i64, {} addrspace(10)*, {} addrspace(10)*ERROR: LLVM error: broken function
Stacktrace:
  [1] lower_convention(functy::Type, mod::LLVM.Module, entry_f::LLVM.Function, actualRetType::Type)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:8652
  [2] codegen(output::Symbol, job::GPUCompiler.CompilerJob{…}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, ctx::LLVM.ThreadSafeContext, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9044
  [3] _thunk(job::GPUCompiler.CompilerJob{…}, ctx::Nothing, postopt::Bool)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9603
  [4] _thunk(job::Any, ctx::Any, postopt::Any)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9600 [inlined]
  [5] cached_compilation(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9638 [inlined]
  [6] #s272#222
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9700 [inlined]
  [7] 
    @ Enzyme.Compiler ./none:0
  [8] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any})
    @ Core ./boot.jl:600
  [9] thunk(::Val{…}, ::Type{…}, ::Type{…}, tt::Type{…}, ::Val{…}, ::Val{…}, ::Val{…}, ::Val{…})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9655 [inlined]
 [10] autodiff(::EnzymeCore.ForwardMode, f::Const{…}, ::Type{…}, args::Duplicated{…})
    @ Enzyme ~/.julia/packages/Enzyme/gS4lp/src/Enzyme.jl:320
 [11] autodiff(mode::EnzymeCore.ForwardMode, f::Const{var"#displacements#5"{…}}, args::Duplicated{Vector{…}})
    @ Enzyme ~/.julia/packages/Enzyme/gS4lp/src/Enzyme.jl:228 [inlined]
 [12] autodiff(mode::EnzymeCore.ForwardMode, f::var"#displacements#5"{}, args::Duplicated{…})
    @ Enzyme ~/.julia/packages/Enzyme/gS4lp/src/Enzyme.jl:214
 [13] top-level scope
    @ REPL[12]:1
Some type information was truncated. Use `show(err)` to see complete types.

Calling show(err) gives:

1-element ExceptionStack:
LLVM error: broken function
Stacktrace:
  [1] lower_convention(functy::Type, mod::LLVM.Module, entry_f::LLVM.Function, actualRetType::Type)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:8652
  [2] codegen(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, ctx::LLVM.ThreadSafeContext, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9044
  [3] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, ctx::Nothing, postopt::Bool)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9603
  [4] _thunk(job::Any, ctx::Any, postopt::Any)
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9600 [inlined]
  [5] cached_compilation(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9638 [inlined]
  [6] #s272#222
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9700 [inlined]
  [7] var"#s272#222"(FA::Any, A::Any, TT::Any, Mode::Any, ModifiedBetween::Any, width::Any, ReturnPrimal::Any, ShadowInit::Any, World::Any, ::Any, ::Any, ::Any, ::Any, tt::Any, ::Any, ::Any, ::Any, ::Any, ::Any)
    @ Enzyme.Compiler ./none:0
  [8] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any})
    @ Core ./boot.jl:600
  [9] thunk(::Val{0x0000000000007b61}, ::Type{Const{var"#displacements#5"{var"#l#4"{DataType}, TrialFESpace{Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}}, Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}, Gridap.Geometry.BodyFittedTriangulation{2, 2, CartesianDiscreteModel{2, Float64, typeof(identity)}, CartesianGrid{2, Float64, typeof(identity)}, Gridap.Arrays.IdentityVector{Int64}}, var"#σ#1"{Float64, Float64}}}}, ::Type{DuplicatedNoNeed{Any}}, tt::Type{Tuple{Duplicated{Vector{Float64}}}}, ::Val{Enzyme.API.DEM_ForwardMode}, ::Val{1}, ::Val{(false, false)}, ::Val{false})
    @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:9655 [inlined]
 [10] autodiff(::EnzymeCore.ForwardMode, f::Const{var"#displacements#5"{var"#l#4"{DataType}, TrialFESpace{Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}}, Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}, Gridap.Geometry.BodyFittedTriangulation{2, 2, CartesianDiscreteModel{2, Float64, typeof(identity)}, CartesianGrid{2, Float64, typeof(identity)}, Gridap.Arrays.IdentityVector{Int64}}, var"#σ#1"{Float64, Float64}}}, ::Type{DuplicatedNoNeed{Any}}, args::Duplicated{Vector{Float64}})
    @ Enzyme ~/.julia/packages/Enzyme/gS4lp/src/Enzyme.jl:320
 [11] autodiff(mode::EnzymeCore.ForwardMode, f::Const{var"#displacements#5"{var"#l#4"{DataType}, TrialFESpace{Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}}, Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}, Gridap.Geometry.BodyFittedTriangulation{2, 2, CartesianDiscreteModel{2, Float64, typeof(identity)}, CartesianGrid{2, Float64, typeof(identity)}, Gridap.Arrays.IdentityVector{Int64}}, var"#σ#1"{Float64, Float64}}}, args::Duplicated{Vector{Float64}})
    @ Enzyme ~/.julia/packages/Enzyme/gS4lp/src/Enzyme.jl:228 [inlined]
 [12] autodiff(mode::EnzymeCore.ForwardMode, f::var"#displacements#5"{var"#l#4"{DataType}, TrialFESpace{Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}}, Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{VectorValue{2, Int32}}}, Gridap.Geometry.BodyFittedTriangulation{2, 2, CartesianDiscreteModel{2, Float64, typeof(identity)}, CartesianGrid{2, Float64, typeof(identity)}, Gridap.Arrays.IdentityVector{Int64}}, var"#σ#1"{Float64, Float64}}, args::Duplicated{Vector{Float64}})
    @ Enzyme ~/.julia/packages/Enzyme/gS4lp/src/Enzyme.jl:214
 [13] top-level scope
    @ REPL[12]:1

@mohamed82008
Copy link
Author

Ah the function f returns an error now. Let me fix it.

@wsmoses
Copy link
Member

wsmoses commented Jul 7, 2023

1.10 is not supported yet. Please use 1.9 or lower.

@mohamed82008
Copy link
Author

Does this work for you? It doesn't for me on M1 and Julia 1.9.

using Pkg
Pkg.add(url = "https://github.com/JuliaTopOpt/TopOptGridap.jl")
Pkg.add(name = "Gridap", rev = "master")
Pkg.add(name = "Enzyme_jll", rev = "main")
Pkg.add(name = "Enzyme", rev = "main")

using TopOptGridap, Enzyme

f, x = TopOptGridap.get_domain()
g = x -> sum(f(x))
dx = similar(x)
g(x)
Enzyme.autodiff(Forward, g, Duplicated(x, dx))

@wsmoses
Copy link
Member

wsmoses commented Jul 7, 2023

For future debugging sake, can you please also post the error message (as well as the particular has of the various repositories). Also you should not do Enzyme_jll#main ever. The version between Enzyme.jl and Enzyme_jll must align with each other. Enzyme_jll represents the tagged builds of the main Enzyme repo (EnzymeAD/Enzyme). Doing #main on the jll does not get the latest build, but the latest tag.

@mohamed82008
Copy link
Author

Ok let's try again. I added Enzyme_jll main because Enzyme#main required Enzyme_jll 0.0.74 which was not released it seems. I reverted to using the latest release versions.

(GridapEnv) pkg> st
Status `~/JuliaEnvs/GridapEnv/Project.toml`
  [7da242da] Enzyme v0.11.2
  [56d4f2e9] Gridap v0.17.17
  [69521377] TopOptGridap v0.1.0 `https://github.com/JuliaTopOpt/TopOptGridap.jl#master`

The following code errors.

using Pkg
Pkg.add(url = "https://github.com/JuliaTopOpt/TopOptGridap.jl")
Pkg.add(name = "Gridap")
Pkg.add(name = "Enzyme")

using TopOptGridap, Enzyme

f, x = TopOptGridap.get_domain()
g = x -> sum(f(x))
dx = similar(x)
g(x)
Enzyme.autodiff(Forward, g, Duplicated(x, dx))

Here is the error:

┌ Warning: TypeAnalysisDepthLimit
│   store {} addrspace(10)* %27, {} addrspace(10)** %.fca.0.0.1.gep, align 8, !dbg !105, !noalias !20
│ {[]:Pointer, [0,0]:Float@double, [0,8]:Float@double, [0,16]:Float@double, [0,24]:Float@double, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [0,40]:Integer, [0,41]:Integer, [0,42]:Integer, [0,43]:Integer, [0,44]:Integer, [0,45]:Integer, [0,46]:Integer, [0,47]:Integer, [0,48]:Integer, [0,49]:Integer, [0,56]:Integer, [0,57]:Integer, [0,58]:Integer, [0,59]:Integer, [0,60]:Integer, [0,61]:Integer, [0,62]:Integer, [0,63]:Integer, [0,64]:Integer, [0,65]:Integer, [0,66]:Integer, [0,67]:Integer, [0,68]:Integer, [0,69]:Integer, [0,70]:Integer, [0,71]:Integer, [0,72]:Integer, [0,80]:Integer, [0,81]:Integer, [0,82]:Integer, [0,83]:Integer, [0,84]:Integer, [0,85]:Integer, [0,86]:Integer, [0,87]:Integer, [0,88]:Pointer, [0,88,0]:Pointer, [0,88,0,0]:Float@double, [0,88,8]:Integer, [0,88,9]:Integer, [0,88,10]:Integer, [0,88,11]:Integer, [0,88,12]:Integer, [0,88,13]:Integer, [0,88,14]:Integer, [0,88,15]:Integer, [0,88,16]:Integer, [0,88,17]:Integer, [0,88,18]:Integer, [0,88,19]:Integer, [0,88,20]:Integer, [0,88,21]:Integer, [0,88,22]:Integer, [0,88,23]:Integer, [0,88,24]:Integer, [0,88,25]:Integer, [0,88,26]:Integer, [0,88,27]:Integer, [0,88,28]:Integer, [0,88,29]:Integer, [0,88,30]:Integer, [0,88,31]:Integer, [0,88,32]:Integer, [0,88,33]:Integer, [0,88,34]:Integer, [0,88,35]:Integer, [0,88,36]:Integer, [0,88,37]:Integer, [0,88,38]:Integer, [0,88,39]:Integer, [0,96]:Pointer, [0,96,0]:Pointer, [0,96,0,0]:Pointer, [0,96,0,0,0]:Pointer, [0,96,0,0,0,0]:Integer, [0,96,0,0,8]:Integer, [0,96,0,0,9]:Integer, [0,96,0,0,10]:Integer, [0,96,0,0,11]:Integer, [0,96,0,0,12]:Integer, [0,96,0,0,13]:Integer, [0,96,0,0,14]:Integer, [0,96,0,0,15]:Integer, [0,96,0,0,16]:Integer, [0,96,0,0,17]:Integer, [0,96,0,0,18]:Integer, [0,96,0,0,19]:Integer, [0,96,0,0,20]:Integer, [0,96,0,0,21]:Integer, [0,96,0,0,22]:Integer, [0,96,0,0,23]:Integer, [0,96,0,0,24]:Integer, [0,96,0,0,25]:Integer, [0,96,0,0,26]:Integer, [0,96,0,0,27]:Integer, [0,96,0,0,28]:Integer, [0,96,0,0,29]:Integer, [0,96,0,0,30]:Integer, [0,96,0,0,31]:Integer, [0,96,0,0,32]:Integer, [0,96,0,0,33]:Integer, [0,96,0,0,34]:Integer, [0,96,0,0,35]:Integer, [0,96,0,0,36]:Integer, [0,96,0,0,37]:Integer, [0,96,0,0,38]:Integer, [0,96,0,0,39]:Integer, [0,96,8]:Integer, [0,96,9]:Integer, [0,96,10]:Integer, [0,96,11]:Integer, [0,96,12]:Integer, [0,96,13]:Integer, [0,96,14]:Integer, [0,96,15]:Integer, [0,96,16]:Integer, [0,96,17]:Integer, [0,96,18]:Integer, [0,96,19]:Integer, [0,96,20]:Integer, [0,96,21]:Integer, [0,96,22]:Integer, [0,96,23]:Integer, [0,96,24]:Integer, [0,96,25]:Integer, [0,96,26]:Integer, [0,96,27]:Integer, [0,96,28]:Integer, [0,96,29]:Integer, [0,96,30]:Integer, [0,96,31]:Integer, [0,96,32]:Integer, [0,96,33]:Integer, [0,96,34]:Integer, [0,96,35]:Integer, [0,96,36]:Integer, [0,96,37]:Integer, [0,96,38]:Integer, [0,96,39]:Integer, [0,104]:Pointer, [0,104,0]:Pointer, [0,104,0,0]:Integer, [0,104,8]:Integer, [0,104,9]:Integer, [0,104,10]:Integer, [0,104,11]:Integer, [0,104,12]:Integer, [0,104,13]:Integer, [0,104,14]:Integer, [0,104,15]:Integer, [0,104,16]:Integer, [0,104,17]:Integer, [0,104,18]:Integer, [0,104,19]:Integer, [0,104,20]:Integer, [0,104,21]:Integer, [0,104,22]:Integer, [0,104,23]:Integer, [0,104,24]:Integer, [0,104,25]:Integer, [0,104,26]:Integer, [0,104,27]:Integer, [0,104,28]:Integer, [0,104,29]:Integer, [0,104,30]:Integer, [0,104,31]:Integer, [0,104,32]:Integer, [0,104,33]:Integer, [0,104,34]:Integer, [0,104,35]:Integer, [0,104,36]:Integer, [0,104,37]:Integer, [0,104,38]:Integer, [0,104,39]:Integer, [0,112]:Pointer, [0,112,0]:Pointer, [0,112,0,0]:Pointer, [0,112,8]:Integer, [0,112,9]:Integer, [0,112,10]:Integer, [0,112,11]:Integer, [0,112,12]:Integer, [0,112,13]:Integer, [0,112,14]:Integer, [0,112,15]:Integer, [0,112,16]:Integer, [0,112,17]:Integer, [0,112,18]:Integer, [0,112,19]:Integer, [0,112,20]:Integer, [0,112,21]:Integer, [0,112,22]:Integer, [0,112,23]:Integer, [0,112,24]:Integer, [0,112,25]:Integer, [0,112,26]:Integer, [0,112,27]:Integer, [0,112,28]:Integer, [0,112,29]:Integer, [0,112,30]:Integer, [0,112,31]:Integer, [0,112,32]:Integer, [0,112,33]:Integer, [0,112,34]:Integer, [0,112,35]:Integer, [0,112,36]:Integer, [0,112,37]:Integer, [0,112,38]:Integer, [0,112,39]:Integer, [0,120]:Pointer, [0,120,0]:Pointer, [0,120,0,0]:Pointer, [0,120,0,0,0]:Pointer, [0,120,0,0,0,0]:Integer, [0,120,0,0,8]:Integer, [0,120,0,0,9]:Integer, [0,120,0,0,10]:Integer, [0,120,0,0,11]:Integer, [0,120,0,0,12]:Integer, [0,120,0,0,13]:Integer, [0,120,0,0,14]:Integer, [0,120,0,0,15]:Integer, [0,120,0,0,16]:Integer, [0,120,0,0,17]:Integer, [0,120,0,0,18]:Integer, [0,120,0,0,19]:Integer, [0,120,0,0,20]:Integer, [0,120,0,0,21]:Integer, [0,120,0,0,22]:Integer, [0,120,0,0,23]:Integer, [0,120,0,0,24]:Integer, [0,120,0,0,25]:Integer, [0,120,0,0,26]:Integer, [0,120,0,0,27]:Integer, [0,120,0,0,28]:Integer, [0,120,0,0,29]:Integer, [0,120,0,0,30]:Integer, [0,120,0,0,31]:Integer, [0,120,0,0,32]:Integer, [0,120,0,0,33]:Integer, [0,120,0,0,34]:Integer, [0,120,0,0,35]:Integer, [0,120,0,0,36]:Integer, [0,120,0,0,37]:Integer, [0,120,0,0,38]:Integer, [0,120,0,0,39]:Integer, [0,120,8]:Integer, [0,120,9]:Integer, [0,120,10]:Integer, [0,120,11]:Integer, [0,120,12]:Integer, [0,120,13]:Integer, [0,120,14]:Integer, [0,120,15]:Integer, [0,120,16]:Integer, [0,120,17]:Integer, [0,120,18]:Integer, [0,120,19]:Integer, [0,120,20]:Integer, [0,120,21]:Integer, [0,120,22]:Integer, [0,120,23]:Integer, [0,120,24]:Integer, [0,120,25]:Integer, [0,120,26]:Integer, [0,120,27]:Integer, [0,120,28]:Integer, [0,120,29]:Integer, [0,120,30]:Integer, [0,120,31]:Integer, [0,120,32]:Integer, [0,120,33]:Integer, [0,120,34]:Integer, [0,120,35]:Integer, [0,120,36]:Integer, [0,120,37]:Integer, [0,120,38]:Integer, [0,120,39]:Integer, [0,128]:Pointer, [0,128,0]:Pointer, [0,128,0,0]:Pointer, [0,128,0,0,0]:Pointer, [0,128,0,0,0,0]:Integer, [0,128,0,0,8]:Integer, [0,128,0,0,9]:Integer, [0,128,0,0,10]:Integer, [0,128,0,0,11]:Integer, [0,128,0,0,12]:Integer, [0,128,0,0,13]:Integer, [0,128,0,0,14]:Integer, [0,128,0,0,15]:Integer, [0,128,0,0,16]:Integer, [0,128,0,0,17]:Integer, [0,128,0,0,18]:Integer, [0,128,0,0,19]:Integer, [0,128,0,0,20]:Integer, [0,128,0,0,21]:Integer, [0,128,0,0,22]:Integer, [0,128,0,0,23]:Integer, [0,128,0,0,24]:Integer, [0,128,0,0,25]:Integer, [0,128,0,0,26]:Integer, [0,128,0,0,27]:Integer, [0,128,0,0,28]:Integer, [0,128,0,0,29]:Integer, [0,128,0,0,30]:Integer, [0,128,0,0,31]:Integer, [0,128,0,0,32]:Integer, [0,128,0,0,33]:Integer, [0,128,0,0,34]:Integer, [0,128,0,0,35]:Integer, [0,128,0,0,36]:Integer, [0,128,0,0,37]:Integer, [0,128,0,0,38]:Integer, [0,128,0,0,39]:Integer, [0,128,8]:Integer, [0,128,9]:Integer, [0,128,10]:Integer, [0,128,11]:Integer, [0,128,12]:Integer, [0,128,13]:Integer, [0,128,14]:Integer, [0,128,15]:Integer, [0,128,16]:Integer, [0,128,17]:Integer, [0,128,18]:Integer, [0,128,19]:Integer, [0,128,20]:Integer, [0,128,21]:Integer, [0,128,22]:Integer, [0,128,23]:Integer, [0,128,24]:Integer, [0,128,25]:Integer, [0,128,26]:Integer, [0,128,27]:Integer, [0,128,28]:Integer, [0,128,29]:Integer, [0,128,30]:Integer, [0,128,31]:Integer, [0,128,32]:Integer, [0,128,33]:Integer, [0,128,34]:Integer, [0,128,35]:Integer, [0,128,36]:Integer, [0,128,37]:Integer, [0,128,38]:Integer, [0,128,39]:Integer, [0,136]:Pointer, [0,136,0]:Pointer, [0,136,0,0]:Pointer, [0,136,8]:Integer, [0,136,9]:Integer, [0,136,10]:Integer, [0,136,11]:Integer, [0,136,12]:Integer, [0,136,13]:Integer, [0,136,14]:Integer, [0,136,15]:Integer, [0,136,16]:Integer, [0,136,17]:Integer, [0,136,18]:Integer, [0,136,19]:Integer, [0,136,20]:Integer, [0,136,21]:Integer, [0,136,22]:Integer, [0,136,23]:Integer, [0,136,24]:Integer, [0,136,25]:Integer, [0,136,26]:Integer, [0,136,27]:Integer, [0,136,28]:Integer, [0,136,29]:Integer, [0,136,30]:Integer, [0,136,31]:Integer, [0,136,32]:Integer, [0,136,33]:Integer, [0,136,34]:Integer, [0,136,35]:Integer, [0,136,36]:Integer, [0,136,37]:Integer, [0,136,38]:Integer, [0,136,39]:Integer, [0,144]:Float@double, [0,152]:Float@double, [0,160]:Float@double, [0,168]:Float@double, [0,176]:Integer, [0,177]:Integer, [0,178]:Integer, [0,179]:Integer, [0,180]:Integer, [0,181]:Integer, [0,182]:Integer, [0,183]:Integer, [0,184]:Integer, [0,185]:Integer, [0,186]:Integer, [0,187]:Integer, [0,188]:Integer, [0,189]:Integer, [0,190]:Integer, [0,191]:Integer, [0,192]:Integer, [0,193]:Integer, [0,200]:Integer, [0,201]:Integer, [0,202]:Integer, [0,203]:Integer, [0,204]:Integer, [0,205]:Integer, [0,206]:Integer, [0,207]:Integer, [0,208]:Integer, [0,209]:Integer, [0,210]:Integer, [0,211]:Integer, [0,212]:Integer, [0,213]:Integer, [0,214]:Integer, [0,215]:Integer, [0,216]:Integer, [0,224]:Integer, [0,225]:Integer, [0,226]:Integer, [0,227]:Integer, [0,228]:Integer, [0,229]:Integer, [0,230]:Integer, [0,231]:Integer, [0,232]:Integer, [0,233]:Integer, [0,234]:Integer, [0,235]:Integer, [0,236]:Integer, [0,237]:Integer, [0,238]:Integer, [0,239]:Integer, [1,0]:Float@double, [1,8]:Float@double, [1,16]:Float@double, [1,24]:Float@double, [1,32]:Integer, [1,33]:Integer, [1,34]:Integer, [1,35]:Integer, [1,36]:Integer, [1,37]:Integer, [1,38]:Integer, [1,39]:Integer, [1,40]:Integer, [1,41]:Integer, [1,42]:Integer, [1,43]:Integer, [1,44]:Integer, [1,45]:Integer, [1,46]:Integer, [1,47]:Integer, [1,48]:Integer, [1,49]:Integer, [1,56]:Integer, [1,57]:Integer, [1,58]:Integer, [1,59]:Integer, [1,60]:Integer, [1,61]:Integer, [1,62]:Integer, [1,63]:Integer, [1,64]:Integer, [1,65]:Integer, [1,66]:Integer, [1,67]:Integer, [1,68]:Integer, [1,69]:Integer, [1,70]:Integer, [1,71]:Integer, [1,72]:Integer, [1,80]:Integer, [1,81]:Integer, [1,82]:Integer, [1,83]:Integer, [1,84]:Integer, [1,85]:Integer, [1,86]:Integer, [1,87]:Integer, [1,88]:Pointer, [1,88,0]:Pointer, [1,88,0,0]:Float@double, [1,88,8]:Integer, [1,88,9]:Integer, [1,88,10]:Integer, [1,88,11]:Integer, [1,88,12]:Integer, [1,88,13]:Integer, [1,88,14]:Integer, [1,88,15]:Integer, [1,88,16]:Integer, [1,88,17]:Integer, [1,88,18]:Integer, [1,88,19]:Integer, [1,88,20]:Integer, [1,88,21]:Integer, [1,88,22]:Integer, [1,88,23]:Integer, [1,88,24]:Integer, [1,88,25]:Integer, [1,88,26]:Integer, [1,88,27]:Integer, [1,88,28]:Integer, [1,88,29]:Integer, [1,88,30]:Integer, [1,88,31]:Integer, [1,88,32]:Integer, [1,88,33]:Integer, [1,88,34]:Integer, [1,88,35]:Integer, [1,88,36]:Integer, [1,88,37]:Integer, [1,88,38]:Integer, [1,88,39]:Integer, [1,96]:Pointer, [1,96,0]:Pointer, [1,96,0,0]:Pointer, [1,96,0,0,0]:Pointer, [1,96,0,0,0,0]:Integer, [1,96,0,0,8]:Integer, [1,96,0,0,9]:Integer, [1,96,0,0,10]:Integer, [1,96,0,0,11]:Integer, [1,96,0,0,12]:Integer, [1,96,0,0,13]:Integer, [1,96,0,0,14]:Integer, [1,96,0,0,15]:Integer, [1,96,0,0,16]:Integer, [1,96,0,0,17]:Integer, [1,96,0,0,18]:Integer, [1,96,0,0,19]:Integer, [1,96,0,0,20]:Integer, [1,96,0,0,21]:Integer, [1,96,0,0,22]:Integer, [1,96,0,0,23]:Integer, [1,96,0,0,24]:Integer, [1,96,0,0,25]:Integer, [1,96,0,0,26]:Integer, [1,96,0,0,27]:Integer, [1,96,0,0,28]:Integer, [1,96,0,0,29]:Integer, [1,96,0,0,30]:Integer, [1,96,0,0,31]:Integer, [1,96,0,0,32]:Integer, [1,96,0,0,33]:Integer, [1,96,0,0,34]:Integer, [1,96,0,0,35]:Integer, [1,96,0,0,36]:Integer, [1,96,0,0,37]:Integer, [1,96,0,0,38]:Integer, [1,96,0,0,39]:Integer, [1,96,8]:Integer, [1,96,9]:Integer, [1,96,10]:Integer, [1,96,11]:Integer, [1,96,12]:Integer, [1,96,13]:Integer, [1,96,14]:Integer, [1,96,15]:Integer, [1,96,16]:Integer, [1,96,17]:Integer, [1,96,18]:Integer, [1,96,19]:Integer, [1,96,20]:Integer, [1,96,21]:Integer, [1,96,22]:Integer, [1,96,23]:Integer, [1,96,24]:Integer, [1,96,25]:Integer, [1,96,26]:Integer, [1,96,27]:Integer, [1,96,28]:Integer, [1,96,29]:Integer, [1,96,30]:Integer, [1,96,31]:Integer, [1,96,32]:Integer, [1,96,33]:Integer, [1,96,34]:Integer, [1,96,35]:Integer, [1,96,36]:Integer, [1,96,37]:Integer, [1,96,38]:Integer, [1,96,39]:Integer, [1,104]:Pointer, [1,104,0]:Pointer, [1,104,0,0]:Integer, [1,104,8]:Integer, [1,104,9]:Integer, [1,104,10]:Integer, [1,104,11]:Integer, [1,104,12]:Integer, [1,104,13]:Integer, [1,104,14]:Integer, [1,104,15]:Integer, [1,104,16]:Integer, [1,104,17]:Integer, [1,104,18]:Integer, [1,104,19]:Integer, [1,104,20]:Integer, [1,104,21]:Integer, [1,104,22]:Integer, [1,104,23]:Integer, [1,104,24]:Integer, [1,104,25]:Integer, [1,104,26]:Integer, [1,104,27]:Integer, [1,104,28]:Integer, [1,104,29]:Integer, [1,104,30]:Integer, [1,104,31]:Integer, [1,104,32]:Integer, [1,104,33]:Integer, [1,104,34]:Integer, [1,104,35]:Integer, [1,104,36]:Integer, [1,104,37]:Integer, [1,104,38]:Integer, [1,104,39]:Integer, [1,112]:Pointer, [1,112,0]:Pointer, [1,112,0,0]:Pointer, [1,112,8]:Integer, [1,112,9]:Integer, [1,112,10]:Integer, [1,112,11]:Integer, [1,112,12]:Integer, [1,112,13]:Integer, [1,112,14]:Integer, [1,112,15]:Integer, [1,112,16]:Integer, [1,112,17]:Integer, [1,112,18]:Integer, [1,112,19]:Integer, [1,112,20]:Integer, [1,112,21]:Integer, [1,112,22]:Integer, [1,112,23]:Integer, [1,112,24]:Integer, [1,112,25]:Integer, [1,112,26]:Integer, [1,112,27]:Integer, [1,112,28]:Integer, [1,112,29]:Integer, [1,112,30]:Integer, [1,112,31]:Integer, [1,112,32]:Integer, [1,112,33]:Integer, [1,112,34]:Integer, [1,112,35]:Integer, [1,112,36]:Integer, [1,112,37]:Integer, [1,112,38]:Integer, [1,112,39]:Integer, [1,120]:Pointer, [1,120,0]:Pointer, [1,120,0,0]:Pointer, [1,120,0,0,0]:Pointer, [1,120,0,0,0,0]:Integer, [1,120,0,0,8]:Integer, [1,120,0,0,9]:Integer, [1,120,0,0,10]:Integer, [1,120,0,0,11]:Integer, [1,120,0,0,12]:Integer, [1,120,0,0,13]:Integer, [1,120,0,0,14]:Integer, [1,120,0,0,15]:Integer, [1,120,0,0,16]:Integer, [1,120,0,0,17]:Integer, [1,120,0,0,18]:Integer, [1,120,0,0,19]:Integer, [1,120,0,0,20]:Integer, [1,120,0,0,21]:Integer, [1,120,0,0,22]:Integer, [1,120,0,0,23]:Integer, [1,120,0,0,24]:Integer, [1,120,0,0,25]:Integer, [1,120,0,0,26]:Integer, [1,120,0,0,27]:Integer, [1,120,0,0,28]:Integer, [1,120,0,0,29]:Integer, [1,120,0,0,30]:Integer, [1,120,0,0,31]:Integer, [1,120,0,0,32]:Integer, [1,120,0,0,33]:Integer, [1,120,0,0,34]:Integer, [1,120,0,0,35]:Integer, [1,120,0,0,36]:Integer, [1,120,0,0,37]:Integer, [1,120,0,0,38]:Integer, [1,120,0,0,39]:Integer, [1,120,8]:Integer, [1,120,9]:Integer, [1,120,10]:Integer, [1,120,11]:Integer, [1,120,12]:Integer, [1,120,13]:Integer, [1,120,14]:Integer, [1,120,15]:Integer, [1,120,16]:Integer, [1,120,17]:Integer, [1,120,18]:Integer, [1,120,19]:Integer, [1,120,20]:Integer, [1,120,21]:Integer, [1,120,22]:Integer, [1,120,23]:Integer, [1,120,24]:Integer, [1,120,25]:Integer, [1,120,26]:Integer, [1,120,27]:Integer, [1,120,28]:Integer, [1,120,29]:Integer, [1,120,30]:Integer, [1,120,31]:Integer, [1,120,32]:Integer, [1,120,33]:Integer, [1,120,34]:Integer, [1,120,35]:Integer, [1,120,36]:Integer, [1,120,37]:Integer, [1,120,38]:Integer, [1,120,39]:Integer, [1,128]:Pointer, [1,128,0]:Pointer, [1,128,0,0]:Pointer, [1,128,0,0,0]:Pointer, [1,128,0,0,0,0]:Integer, [1,128,0,0,8]:Integer, [1,128,0,0,9]:Integer, [1,128,0,0,10]:Integer, [1,128,0,0,11]:Integer, [1,128,0,0,12]:Integer, [1,128,0,0,13]:Integer, [1,128,0,0,14]:Integer, [1,128,0,0,15]:Integer, [1,128,0,0,16]:Integer, [1,128,0,0,17]:Integer, [1,128,0,0,18]:Integer, [1,128,0,0,19]:Integer, [1,128,0,0,20]:Integer, [1,128,0,0,21]:Integer, [1,128,0,0,22]:Integer, [1,128,0,0,23]:Integer, [1,128,0,0,24]:Integer, [1,128,0,0,25]:Integer, [1,128,0,0,26]:Integer, [1,128,0,0,27]:Integer, [1,128,0,0,28]:Integer, [1,128,0,0,29]:Integer, [1,128,0,0,30]:Integer, [1,128,0,0,31]:Integer, [1,128,0,0,32]:Integer, [1,128,0,0,33]:Integer, [1,128,0,0,34]:Integer, [1,128,0,0,35]:Integer, [1,128,0,0,36]:Integer, [1,128,0,0,37]:Integer, [1,128,0,0,38]:Integer, [1,128,0,0,39]:Integer, [1,128,8]:Integer, [1,128,9]:Integer, [1,128,10]:Integer, [1,128,11]:Integer, [1,128,12]:Integer, [1,128,13]:Integer, [1,128,14]:Integer, [1,128,15]:Integer, [1,128,16]:Integer, [1,128,17]:Integer, [1,128,18]:Integer, [1,128,19]:Integer, [1,128,20]:Integer, [1,128,21]:Integer, [1,128,22]:Integer, [1,128,23]:Integer, [1,128,24]:Integer, [1,128,25]:Integer, [1,128,26]:Integer, [1,128,27]:Integer, [1,128,28]:Integer, [1,128,29]:Integer, [1,128,30]:Integer, [1,128,31]:Integer, [1,128,32]:Integer, [1,128,33]:Integer, [1,128,34]:Integer, [1,128,35]:Integer, [1,128,36]:Integer, [1,128,37]:Integer, [1,128,38]:Integer, [1,128,39]:Integer, [1,136]:Pointer, [1,136,0]:Pointer, [1,136,0,0]:Pointer, [1,136,8]:Integer, [1,136,9]:Integer, [1,136,10]:Integer, [1,136,11]:Integer, [1,136,12]:Integer, [1,136,13]:Integer, [1,136,14]:Integer, [1,136,15]:Integer, [1,136,16]:Integer, [1,136,17]:Integer, [1,136,18]:Integer, [1,136,19]:Integer, [1,136,20]:Integer, [1,136,21]:Integer, [1,136,22]:Integer, [1,136,23]:Integer, [1,136,24]:Integer, [1,136,25]:Integer, [1,136,26]:Integer, [1,136,27]:Integer, [1,136,28]:Integer, [1,136,29]:Integer, [1,136,30]:Integer, [1,136,31]:Integer, [1,136,32]:Integer, [1,136,33]:Integer, [1,136,34]:Integer, [1,136,35]:Integer, [1,136,36]:Integer, [1,136,37]:Integer, [1,136,38]:Integer, [1,136,39]:Integer, [1,144]:Float@double, [1,152]:Float@double, [1,160]:Float@double, [1,168]:Float@double, [1,176]:Integer, [1,177]:Integer, [1,178]:Integer, [1,179]:Integer, [1,180]:Integer, [1,181]:Integer, [1,182]:Integer, [1,183]:Integer, [1,184]:Integer, [1,185]:Integer, [1,186]:Integer, [1,187]:Integer, [1,188]:Integer, [1,189]:Integer, [1,190]:Integer, [1,191]:Integer, [1,192]:Integer, [1,193]:Integer, [1,200]:Integer, [1,201]:Integer, [1,202]:Integer, [1,203]:Integer, [1,204]:Integer, [1,205]:Integer, [1,206]:Integer, [1,207]:Integer, [1,208]:Integer, [1,209]:Integer, [1,210]:Integer, [1,211]:Integer, [1,212]:Integer, [1,213]:Integer, [1,214]:Integer, [1,215]:Integer, [1,216]:Integer, [1,224]:Integer, [1,225]:Integer, [1,226]:Integer, [1,227]:Integer, [1,228]:Integer, [1,229]:Integer, [1,230]:Integer, [1,231]:Integer, [1,232]:Integer, [1,233]:Integer, [1,234]:Integer, [1,235]:Integer, [1,236]:Integer, [1,237]:Integer, [1,238]:Integer, [1,239]:Integer, [2,0]:Float@double, [2,8]:Float@double, [2,16]:Float@double, [2,24]:Float@double, [2,32]:Integer, [2,33]:Integer, [2,34]:Integer, [2,35]:Integer, [2,36]:Integer, [2,37]:Integer, [2,38]:Integer, [2,39]:Integer, [2,40]:Integer, [2,41]:Integer, [2,42]:Integer, [2,43]:Integer, [2,44]:Integer, [2,45]:Integer, [2,46]:Integer, [2,47]:Integer, [2,48]:Integer, [2,49]:Integer, [2,56]:Integer, [2,57]:Integer, [2,58]:Integer, [2,59]:Integer, [2,60]:Integer, [2,61]:Integer, [2,62]:Integer, [2,63]:Integer, [2,64]:Integer, [2,65]:Integer, [2,66]:Integer, [2,67]:Integer, [2,68]:Integer, [2,69]:Integer, [2,70]:Integer, [2,71]:Integer, [2,72]:Integer, [2,80]:Integer, [2,81]:Integer, [2,82]:Integer, [2,83]:Integer, [2,84]:Integer, [2,85]:Integer, [2,86]:Integer, [2,87]:Integer, [2,88]:Pointer, [2,88,0]:Pointer, [2,88,0,0]:Float@double, [2,88,8]:Integer, [2,88,9]:Integer, [2,88,10]:Integer, [2,88,11]:Integer, [2,88,12]:Integer, [2,88,13]:Integer, [2,88,14]:Integer, [2,88,15]:Integer, [2,88,16]:Integer, [2,88,17]:Integer, [2,88,18]:Integer, [2,88,19]:Integer, [2,88,20]:Integer, [2,88,21]:Integer, [2,88,22]:Integer, [2,88,23]:Integer, [2,88,24]:Integer, [2,88,25]:Integer, [2,88,26]:Integer, [2,88,27]:Integer, [2,88,28]:Integer, [2,88,29]:Integer, [2,88,30]:Integer, [2,88,31]:Integer, [2,88,32]:Integer, [2,88,33]:Integer, [2,88,34]:Integer, [2,88,35]:Integer, [2,88,36]:Integer, [2,88,37]:Integer, [2,88,38]:Integer, [2,88,39]:Integer, [2,96]:Pointer, [2,96,0]:Pointer, [2,96,0,0]:Pointer, [2,96,0,0,0]:Pointer, [2,96,0,0,0,0]:Integer, [2,96,0,0,8]:Integer, [2,96,0,0,9]:Integer, [2,96,0,0,10]:Integer, [2,96,0,0,11]:Integer, [2,96,0,0,12]:Integer, [2,96,0,0,13]:Integer, [2,96,0,0,14]:Integer, [2,96,0,0,15]:Integer, [2,96,0,0,16]:Integer, [2,96,0,0,17]:Integer, [2,96,0,0,18]:Integer, [2,96,0,0,19]:Integer, [2,96,0,0,20]:Integer, [2,96,0,0,21]:Integer, [2,96,0,0,22]:Integer, [2,96,0,0,23]:Integer, [2,96,0,0,24]:Integer, [2,96,0,0,25]:Integer, [2,96,0,0,26]:Integer, [2,96,0,0,27]:Integer, [2,96,0,0,28]:Integer, [2,96,0,0,29]:Integer, [2,96,0,0,30]:Integer, [2,96,0,0,31]:Integer, [2,96,0,0,32]:Integer, [2,96,0,0,33]:Integer, [2,96,0,0,34]:Integer, [2,96,0,0,35]:Integer, [2,96,0,0,36]:Integer, [2,96,0,0,37]:Integer, [2,96,0,0,38]:Integer, [2,96,0,0,39]:Integer, [2,96,8]:Integer, [2,96,9]:Integer, [2,96,10]:Integer, [2,96,11]:Integer, [2,96,12]:Integer, [2,96,13]:Integer, [2,96,14]:Integer, [2,96,15]:Integer, [2,96,16]:Integer, [2,96,17]:Integer, [2,96,18]:Integer, [2,96,19]:Integer, [2,96,20]:Integer, [2,96,21]:Integer, [2,96,22]:Integer, [2,96,23]:Integer, [2,96,24]:Integer, [2,96,25]:Integer, [2,96,26]:Integer, [2,96,27]:Integer, [2,96,28]:Integer, [2,96,29]:Integer, [2,96,30]:Integer, [2,96,31]:Integer, [2,96,32]:Integer, [2,96,33]:Integer, [2,96,34]:Integer, [2,96,35]:Integer, [2,96,36]:Integer, [2,96,37]:Integer, [2,96,38]:Integer, [2,96,39]:Integer, [2,104]:Pointer, [2,104,0]:Pointer, [2,104,0,0]:Integer, [2,104,8]:Integer, [2,104,9]:Integer, [2,104,10]:Integer, [2,104,11]:Integer, [2,104,12]:Integer, [2,104,13]:Integer, [2,104,14]:Integer, [2,104,15]:Integer, [2,104,16]:Integer, [2,104,17]:Integer, [2,104,18]:Integer, [2,104,19]:Integer, [2,104,20]:Integer, [2,104,21]:Integer, [2,104,22]:Integer, [2,104,23]:Integer, [2,104,24]:Integer, [2,104,25]:Integer, [2,104,26]:Integer, [2,104,27]:Integer, [2,104,28]:Integer, [2,104,29]:Integer, [2,104,30]:Integer, [2,104,31]:Integer, [2,104,32]:Integer, [2,104,33]:Integer, [2,104,34]:Integer, [2,104,35]:Integer, [2,104,36]:Integer, [2,104,37]:Integer, [2,104,38]:Integer, [2,104,39]:Integer, [2,112]:Pointer, [2,112,0]:Pointer, [2,112,0,0]:Pointer, [2,112,8]:Integer, [2,112,9]:Integer, [2,112,10]:Integer, [2,112,11]:Integer, [2,112,12]:Integer, [2,112,13]:Integer, [2,112,14]:Integer, [2,112,15]:Integer, [2,112,16]:Integer, [2,112,17]:Integer, [2,112,18]:Integer, [2,112,19]:Integer, [2,112,20]:Integer, [2,112,21]:Integer, [2,112,22]:Integer, [2,112,23]:Integer, [2,112,24]:Integer, [2,112,25]:Integer, [2,112,26]:Integer, [2,112,27]:Integer, [2,112,28]:Integer, [2,112,29]:Integer, [2,112,30]:Integer, [2,112,31]:Integer, [2,112,32]:Integer, [2,112,33]:Integer, [2,112,34]:Integer, [2,112,35]:Integer, [2,112,36]:Integer, [2,112,37]:Integer, [2,112,38]:Integer, [2,112,39]:Integer, [2,120]:Pointer, [2,120,0]:Pointer, [2,120,0,0]:Pointer, [2,120,0,0,0]:Pointer, [2,120,0,0,0,0]:Integer, [2,120,0,0,8]:Integer, [2,120,0,0,9]:Integer, [2,120,0,0,10]:Integer, [2,120,0,0,11]:Integer, [2,120,0,0,12]:Integer, [2,120,0,0,13]:Integer, [2,120,0,0,14]:Integer, [2,120,0,0,15]:Integer, [2,120,0,0,16]:Integer, [2,120,0,0,17]:Integer, [2,120,0,0,18]:Integer, [2,120,0,0,19]:Integer, [2,120,0,0,20]:Integer, [2,120,0,0,21]:Integer, [2,120,0,0,22]:Integer, [2,120,0,0,23]:Integer, [2,120,0,0,24]:Integer, [2,120,0,0,25]:Integer, [2,120,0,0,26]:Integer, [2,120,0,0,27]:Integer, [2,120,0,0,28]:Integer, [2,120,0,0,29]:Integer, [2,120,0,0,30]:Integer, [2,120,0,0,31]:Integer, [2,120,0,0,32]:Integer, [2,120,0,0,33]:Integer, [2,120,0,0,34]:Integer, [2,120,0,0,35]:Integer, [2,120,0,0,36]:Integer, [2,120,0,0,37]:Integer, [2,120,0,0,38]:Integer, [2,120,0,0,39]:Integer, [2,120,8]:Integer, [2,120,9]:Integer, [2,120,10]:Integer, [2,120,11]:Integer, [2,120,12]:Integer, [2,120,13]:Integer, [2,120,14]:Integer, [2,120,15]:Integer, [2,120,16]:Integer, [2,120,17]:Integer, [2,120,18]:Integer, [2,120,19]:Integer, [2,120,20]:Integer, [2,120,21]:Integer, [2,120,22]:Integer, [2,120,23]:Integer, [2,120,24]:Integer, [2,120,25]:Integer, [2,120,26]:Integer, [2,120,27]:Integer, [2,120,28]:Integer, [2,120,29]:Integer, [2,120,30]:Integer, [2,120,31]:Integer, [2,120,32]:Integer, [2,120,33]:Integer, [2,120,34]:Integer, [2,120,35]:Integer, [2,120,36]:Integer, [2,120,37]:Integer, [2,120,38]:Integer, [2,120,39]:Integer, [2,128]:Pointer, [2,128,0]:Pointer, [2,128,0,0]:Pointer, [2,128,0,0,0]:Pointer, [2,128,0,0,0,0]:Integer, [2,128,0,0,8]:Integer, [2,128,0,0,9]:Integer, [2,128,0,0,10]:Integer, [2,128,0,0,11]:Integer, [2,128,0,0,12]:Integer, [2,128,0,0,13]:Integer, [2,128,0,0,14]:Integer, [2,128,0,0,15]:Integer, [2,128,0,0,16]:Integer, [2,128,0,0,17]:Integer, [2,128,0,0,18]:Integer, [2,128,0,0,19]:Integer, [2,128,0,0,20]:Integer, [2,128,0,0,21]:Integer, [2,128,0,0,22]:Integer, [2,128,0,0,23]:Integer, [2,128,0,0,24]:Integer, [2,128,0,0,25]:Integer, [2,128,0,0,26]:Integer, [2,128,0,0,27]:Integer, [2,128,0,0,28]:Integer, [2,128,0,0,29]:Integer, [2,128,0,0,30]:Integer, [2,128,0,0,31]:Integer, [2,128,0,0,32]:Integer, [2,128,0,0,33]:Integer, [2,128,0,0,34]:Integer, [2,128,0,0,35]:Integer, [2,128,0,0,36]:Integer, [2,128,0,0,37]:Integer, [2,128,0,0,38]:Integer, [2,128,0,0,39]:Integer, [2,128,8]:Integer, [2,128,9]:Integer, [2,128,10]:Integer, [2,128,11]:Integer, [2,128,12]:Integer, [2,128,13]:Integer, [2,128,14]:Integer, [2,128,15]:Integer, [2,128,16]:Integer, [2,128,17]:Integer, [2,128,18]:Integer, [2,128,19]:Integer, [2,128,20]:Integer, [2,128,21]:Integer, [2,128,22]:Integer, [2,128,23]:Integer, [2,128,24]:Integer, [2,128,25]:Integer, [2,128,26]:Integer, [2,128,27]:Integer, [2,128,28]:Integer, [2,128,29]:Integer, [2,128,30]:Integer, [2,128,31]:Integer, [2,128,32]:Integer, [2,128,33]:Integer, [2,128,34]:Integer, [2,128,35]:Integer, [2,128,36]:Integer, [2,128,37]:Integer, [2,128,38]:Integer, [2,128,39]:Integer, [2,136]:Pointer, [2,136,0]:Pointer, [2,136,0,0]:Pointer, [2,136,8]:Integer, [2,136,9]:Integer, [2,136,10]:Integer, [2,136,11]:Integer, [2,136,12]:Integer, [2,136,13]:Integer, [2,136,14]:Integer, [2,136,15]:Integer, [2,136,16]:Integer, [2,136,17]:Integer, [2,136,18]:Integer, [2,136,19]:Integer, [2,136,20]:Integer, [2,136,21]:Integer, [2,136,22]:Integer, [2,136,23]:Integer, [2,136,24]:Integer, [2,136,25]:Integer, [2,136,26]:Integer, [2,136,27]:Integer, [2,136,28]:Integer, [2,136,29]:Integer, [2,136,30]:Integer, [2,136,31]:Integer, [2,136,32]:Integer, [2,136,33]:Integer, [2,136,34]:Integer, [2,136,35]:Integer, [2,136,36]:Integer, [2,136,37]:Integer, [2,136,38]:Integer, [2,136,39]:Integer, [2,144]:Float@double, [2,152]:Float@double, [2,160]:Float@double, [2,168]:Float@double, [2,176]:Integer, [2,177]:Integer, [2,178]:Integer, [2,179]:Integer, [2,180]:Integer, [2,181]:Integer, [2,182]:Integer, [2,183]:Integer, [2,184]:Integer, [2,185]:Integer, [2,186]:Integer, [2,187]:Integer, [2,188]:Integer, [2,189]:Integer, [2,190]:Integer, [2,191]:Integer, [2,192]:Integer, [2,193]:Integer, [2,200]:Integer, [2,201]:Integer, [2,202]:Integer, [2,203]:Integer, [2,204]:Integer, [2,205]:Integer, [2,206]:Integer, [2,207]:Integer, [2,208]:Integer, [2,209]:Integer, [2,210]:Integer, [2,211]:Integer, [2,212]:Integer, [2,213]:Integer, [2,214]:Integer, [2,215]:Integer, [2,216]:Integer, [2,224]:Integer, [2,225]:Integer, [2,226]:Integer, [2,227]:Integer, [2,228]:Integer, [2,229]:Integer, [2,230]:Integer, [2,231]:Integer, [2,232]:Integer, [2,233]:Integer, [2,234]:Integer, [2,235]:Integer, [2,236]:Integer, [2,237]:Integer, [2,238]:Integer, [2,239]:Integer, [3,0]:Float@double, [3,8]:Float@double, [3,16]:Float@double, [3,24]:Float@double, [3,32]:Integer, [3,33]:Integer, [3,34]:Integer, [3,35]:Integer, [3,36]:Integer, [3,37]:Integer, [3,38]:Integer, [3,39]:Integer, [3,40]:Integer, [3,41]:Integer, [3,42]:Integer, [3,43]:Integer, [3,44]:Integer, [3,45]:Integer, [3,46]:Integer, [3,47]:Integer, [3,48]:Integer, [3,49]:Integer, [3,56]:Integer, [3,57]:Integer, [3,58]:Integer, [3,59]:Integer, [3,60]:Integer, [3,61]:Integer, [3,62]:Integer, [3,63]:Integer, [3,64]:Integer, [3,65]:Integer, [3,66]:Integer, [3,67]:Integer, [3,68]:Integer, [3,69]:Integer, [3,70]:Integer, [3,71]:Integer, [3,72]:Integer, [3,80]:Integer, [3,81]:Integer, [3,82]:Integer, [3,83]:Integer, [3,84]:Integer, [3,85]:Integer, [3,86]:Integer, [3,87]:Integer, [3,88]:Pointer, [3,88,0]:Pointer, [3,88,0,0]:Float@double, [3,88,8]:Integer, [3,88,9]:Integer, [3,88,10]:Integer, [3,88,11]:Integer, [3,88,12]:Integer, [3,88,13]:Integer, [3,88,14]:Integer, [3,88,15]:Integer, [3,88,16]:Integer, [3,88,17]:Integer, [3,88,18]:Integer, [3,88,19]:Integer, [3,88,20]:Integer, [3,88,21]:Integer, [3,88,22]:Integer, [3,88,23]:Integer, [3,88,24]:Integer, [3,88,25]:Integer, [3,88,26]:Integer, [3,88,27]:Integer, [3,88,28]:Integer, [3,88,29]:Integer, [3,88,30]:Integer, [3,88,31]:Integer, [3,88,32]:Integer, [3,88,33]:Integer, [3,88,34]:Integer, [3,88,35]:Integer, [3,88,36]:Integer, [3,88,37]:Integer, [3,88,38]:Integer, [3,88,39]:Integer, [3,96]:Pointer, [3,96,0]:Pointer, [3,96,0,0]:Pointer, [3,96,0,0,0]:Pointer, [3,96,0,0,0,0]:Integer, [3,96,0,0,8]:Integer, [3,96,0,0,9]:Integer, [3,96,0,0,10]:Integer, [3,96,0,0,11]:Integer, [3,96,0,0,12]:Integer, [3,96,0,0,13]:Integer, [3,96,0,0,14]:Integer, [3,96,0,0,15]:Integer, [3,96,0,0,16]:Integer, [3,96,0,0,17]:Integer, [3,96,0,0,18]:Integer, [3,96,0,0,19]:Integer, [3,96,0,0,20]:Integer, [3,96,0,0,21]:Integer, [3,96,0,0,22]:Integer, [3,96,0,0,23]:Integer, [3,96,0,0,24]:Integer, [3,96,0,0,25]:Integer, [3,96,0,0,26]:Integer, [3,96,0,0,27]:Integer, [3,96,0,0,28]:Integer, [3,96,0,0,29]:Integer, [3,96,0,0,30]:Integer, [3,96,0,0,31]:Integer, [3,96,0,0,32]:Integer, [3,96,0,0,33]:Integer, [3,96,0,0,34]:Integer, [3,96,0,0,35]:Integer, [3,96,0,0,36]:Integer, [3,96,0,0,37]:Integer, [3,96,0,0,38]:Integer, [3,96,0,0,39]:Integer, [3,96,8]:Integer, [3,96,9]:Integer, [3,96,10]:Integer, [3,96,11]:Integer, [3,96,12]:Integer, [3,96,13]:Integer, [3,96,14]:Integer, [3,96,15]:Integer, [3,96,16]:Integer, [3,96,17]:Integer, [3,96,18]:Integer, [3,96,19]:Integer, [3,96,20]:Integer, [3,96,21]:Integer, [3,96,22]:Integer, [3,96,23]:Integer, [3,96,24]:Integer, [3,96,25]:Integer, [3,96,26]:Integer, [3,96,27]:Integer, [3,96,28]:Integer, [3,96,29]:Integer, [3,96,30]:Integer, [3,96,31]:Integer, [3,96,32]:Integer, [3,96,33]:Integer, [3,96,34]:Integer, [3,96,35]:Integer, [3,96,36]:Integer, [3,96,37]:Integer, [3,96,38]:Integer, [3,96,39]:Integer, [3,104]:Pointer, [3,104,0]:Pointer, [3,104,0,0]:Integer, [3,104,8]:Integer, [3,104,9]:Integer, [3,104,10]:Integer, [3,104,11]:Integer, [3,104,12]:Integer, [3,104,13]:Integer, [3,104,14]:Integer, [3,104,15]:Integer, [3,104,16]:Integer, [3,104,17]:Integer, [3,104,18]:Integer, [3,104,19]:Integer, [3,104,20]:Integer, [3,104,21]:Integer, [3,104,22]:Integer, [3,104,23]:Integer, [3,104,24]:Integer, [3,104,25]:Integer, [3,104,26]:Integer, [3,104,27]:Integer, [3,104,28]:Integer, [3,104,29]:Integer, [3,104,30]:Integer, [3,104,31]:Integer, [3,104,32]:Integer, [3,104,33]:Integer, [3,104,34]:Integer, [3,104,35]:Integer, [3,104,36]:Integer, [3,104,37]:Integer, [3,104,38]:Integer, [3,104,39]:Integer, [3,112]:Pointer, [3,112,0]:Pointer, [3,112,0,0]:Pointer, [3,112,8]:Integer, [3,112,9]:Integer, [3,112,10]:Integer, [3,112,11]:Integer, [3,112,12]:Integer, [3,112,13]:Integer, [3,112,14]:Integer, [3,112,15]:Integer, [3,112,16]:Integer, [3,112,17]:Integer, [3,112,18]:Integer, [3,112,19]:Integer, [3,112,20]:Integer, [3,112,21]:Integer, [3,112,22]:Integer, [3,112,23]:Integer, [3,112,24]:Integer, [3,112,25]:Integer, [3,112,26]:Integer, [3,112,27]:Integer, [3,112,28]:Integer, [3,112,29]:Integer, [3,112,30]:Integer, [3,112,31]:Integer, [3,112,32]:Integer, [3,112,33]:Integer, [3,112,34]:Integer, [3,112,35]:Integer, [3,112,36]:Integer, [3,112,37]:Integer, [3,112,38]:Integer, [3,112,39]:Integer, [3,120]:Pointer, [3,120,0]:Pointer, [3,120,0,0]:Pointer, [3,120,0,0,0]:Pointer, [3,120,0,0,0,0]:Integer, [3,120,0,0,8]:Integer, [3,120,0,0,9]:Integer, [3,120,0,0,10]:Integer, [3,120,0,0,11]:Integer, [3,120,0,0,12]:Integer, [3,120,0,0,13]:Integer, [3,120,0,0,14]:Integer, [3,120,0,0,15]:Integer, [3,120,0,0,16]:Integer, [3,120,0,0,17]:Integer, [3,120,0,0,18]:Integer, [3,120,0,0,19]:Integer, [3,120,0,0,20]:Integer, [3,120,0,0,21]:Integer, [3,120,0,0,22]:Integer, [3,120,0,0,23]:Integer, [3,120,0,0,24]:Integer, [3,120,0,0,25]:Integer, [3,120,0,0,26]:Integer, [3,120,0,0,27]:Integer, [3,120,0,0,28]:Integer, [3,120,0,0,29]:Integer, [3,120,0,0,30]:Integer, [3,120,0,0,31]:Integer, [3,120,0,0,32]:Integer, [3,120,0,0,33]:Integer, [3,120,0,0,34]:Integer, [3,120,0,0,35]:Integer, [3,120,0,0,36]:Integer, [3,120,0,0,37]:Integer, [3,120,0,0,38]:Integer, [3,120,0,0,39]:Integer, [3,120,8]:Integer, [3,120,9]:Integer, [3,120,10]:Integer, [3,120,11]:Integer, [3,120,12]:Integer, [3,120,13]:Integer, [3,120,14]:Integer, [3,120,15]:Integer, [3,120,16]:Integer, [3,120,17]:Integer, [3,120,18]:Integer, [3,120,19]:Integer, [3,120,20]:Integer, [3,120,21]:Integer, [3,120,22]:Integer, [3,120,23]:Integer, [3,120,24]:Integer, [3,120,25]:Integer, [3,120,26]:Integer, [3,120,27]:Integer, [3,120,28]:Integer, [3,120,29]:Integer, [3,120,30]:Integer, [3,120,31]:Integer, [3,120,32]:Integer, [3,120,33]:Integer, [3,120,34]:Integer, [3,120,35]:Integer, [3,120,36]:Integer, [3,120,37]:Integer, [3,120,38]:Integer, [3,120,39]:Integer, [3,128]:Pointer, [3,128,0]:Pointer, [3,128,0,0]:Pointer, [3,128,0,0,0]:Pointer, [3,128,0,0,0,0]:Integer, [3,128,0,0,8]:Integer, [3,128,0,0,9]:Integer, [3,128,0,0,10]:Integer, [3,128,0,0,11]:Integer, [3,128,0,0,12]:Integer, [3,128,0,0,13]:Integer, [3,128,0,0,14]:Integer, [3,128,0,0,15]:Integer, [3,128,0,0,16]:Integer, [3,128,0,0,17]:Integer, [3,128,0,0,18]:Integer, [3,128,0,0,19]:Integer, [3,128,0,0,20]:Integer, [3,128,0,0,21]:Integer, [3,128,0,0,22]:Integer, [3,128,0,0,23]:Integer, [3,128,0,0,24]:Integer, [3,128,0,0,25]:Integer, [3,128,0,0,26]:Integer, [3,128,0,0,27]:Integer, [3,128,0,0,28]:Integer, [3,128,0,0,29]:Integer, [3,128,0,0,30]:Integer, [3,128,0,0,31]:Integer, [3,128,0,0,32]:Integer, [3,128,0,0,33]:Integer, [3,128,0,0,34]:Integer, [3,128,0,0,35]:Integer, [3,128,0,0,36]:Integer, [3,128,0,0,37]:Integer, [3,128,0,0,38]:Integer, [3,128,0,0,39]:Integer, [3,128,8]:Integer, [3,128,9]:Integer, [3,128,10]:Integer, [3,128,11]:Integer, [3,128,12]:Integer, [3,128,13]:Integer, [3,128,14]:Integer, [3,128,15]:Integer, [3,128,16]:Integer, [3,128,17]:Integer, [3,128,18]:Integer, [3,128,19]:Integer, [3,128,20]:Integer, [3,128,21]:Integer, [3,128,22]:Integer, [3,128,23]:Integer, [3,128,24]:Integer, [3,128,25]:Integer, [3,128,26]:Integer, [3,128,27]:Integer, [3,128,28]:Integer, [3,128,29]:Integer, [3,128,30]:Integer, [3,128,31]:Integer, [3,128,32]:Integer, [3,128,33]:Integer, [3,128,34]:Integer, [3,128,35]:Integer, [3,128,36]:Integer, [3,128,37]:Integer, [3,128,38]:Integer, [3,128,39]:Integer, [3,136]:Pointer, [3,136,0]:Pointer, [3,136,0,0]:Pointer, [3,136,8]:Integer, [3,136,9]:Integer, [3,136,10]:Integer, [3,136,11]:Integer, [3,136,12]:Integer, [3,136,13]:Integer, [3,136,14]:Integer, [3,136,15]:Integer, [3,136,16]:Integer, [3,136,17]:Integer, [3,136,18]:Integer, [3,136,19]:Integer, [3,136,20]:Integer, [3,136,21]:Integer, [3,136,22]:Integer, [3,136,23]:Integer, [3,136,24]:Integer, [3,136,25]:Integer, [3,136,26]:Integer, [3,136,27]:Integer, [3,136,28]:Integer, [3,136,29]:Integer, [3,136,30]:Integer, [3,136,31]:Integer, [3,136,32]:Integer, [3,136,33]:Integer, [3,136,34]:Integer, [3,136,35]:Integer, [3,136,36]:Integer, [3,136,37]:Integer, [3,136,38]:Integer, [3,136,39]:Integer, [3,144]:Float@double, [3,152]:Float@double, [3,160]:Float@double, [3,168]:Float@double, [3,176]:Integer, [3,177]:Integer, [3,178]:Integer, [3,179]:Integer, [3,180]:Integer, [3,181]:Integer, [3,182]:Integer, [3,183]:Integer, [3,184]:Integer, [3,185]:Integer, [3,186]:Integer, [3,187]:Integer, [3,188]:Integer, [3,189]:Integer, [3,190]:Integer, [3,191]:Integer, [3,192]:Integer, [3,193]:Integer, [3,200]:Integer, [3,201]:Integer, [3,202]:Integer, [3,203]:Integer, [3,204]:Integer, [3,205]:Integer, [3,206]:Integer, [3,207]:Integer, [3,208]:Integer, [3,209]:Integer, [3,210]:Integer, [3,211]:Integer, [3,212]:Integer, [3,213]:Integer, [3,214]:Integer, [3,215]:Integer, [3,216]:Integer, [3,224]:Integer, [3,225]:Integer, [3,226]:Integer, [3,227]:Integer, [3,228]:Integer, [3,229]:Integer, [3,230]:Integer, [3,231]:Integer, [3,232]:Integer, [3,233]:Integer, [3,234]:Integer, [3,235]:Integer, [3,236]:Integer, [3,237]:Integer, [3,238]:Integer, [3,239]:Integer, [4,0]:Float@double, [4,8]:Float@double, [4,16]:Float@double, [4,24]:Float@double, [4,32]:Integer, [4,33]:Integer, [4,34]:Integer, [4,35]:Integer, [4,36]:Integer, [4,37]:Integer, [4,38]:Integer, [4,39]:Integer, [4,40]:Integer, [4,41]:Integer, [4,42]:Integer, [4,43]:Integer, [4,44]:Integer, [4,45]:Integer, [4,46]:Integer, [4,47]:Integer, [4,48]:Integer, [4,49]:Integer, [4,56]:Integer, [4,57]:Integer, [4,58]:Integer, [4,59]:Integer, [4,60]:Integer, [4,61]:Integer, [4,62]:Integer, [4,63]:Integer, [4,64]:Integer, [4,65]:Integer, [4,66]:Integer, [4,67]:Integer, [4,68]:Integer, [4,69]:Integer, [4,70]:Integer, [4,71]:Integer, [4,72]:Integer, [4,80]:Integer, [4,81]:Integer, [4,82]:Integer, [4,83]:Integer, [4,84]:Integer, [4,85]:Integer, [4,86]:Integer, [4,87]:Integer, [4,88]:Pointer, [4,88,0]:Pointer, [4,88,0,0]:Float@double, [4,88,8]:Integer, [4,88,9]:Integer, [4,88,10]:Integer, [4,88,11]:Integer, [4,88,12]:Integer, [4,88,13]:Integer, [4,88,14]:Integer, [4,88,15]:Integer, [4,88,16]:Integer, [4,88,17]:Integer, [4,88,18]:Integer, [4,88,19]:Integer, [4,88,20]:Integer, [4,88,21]:Integer, [4,88,22]:Integer, [4,88,23]:Integer, [4,88,24]:Integer, [4,88,25]:Integer, [4,88,26]:Integer, [4,88,27]:Integer, [4,88,28]:Integer, [4,88,29]:Integer, [4,88,30]:Integer, [4,88,31]:Integer, [4,88,32]:Integer, [4,88,33]:Integer, [4,88,34]:Integer, [4,88,35]:Integer, [4,88,36]:Integer, [4,88,37]:Integer, [4,88,38]:Integer, [4,88,39]:Integer, [4,96]:Pointer, [4,96,0]:Pointer, [4,96,0,0]:Pointer, [4,96,0,0,0]:Pointer, [4,96,0,0,0,0]:Integer, [4,96,0,0,8]:Integer, [4,96,0,0,9]:Integer, [4,96,0,0,10]:Integer, [4,96,0,0,11]:Integer, [4,96,0,0,12]:Integer, [4,96,0,0,13]:Integer, [4,96,0,0,14]:Integer, [4,96,0,0,15]:Integer, [4,96,0,0,16]:Integer, [4,96,0,0,17]:Integer, [4,96,0,0,18]:Integer, [4,96,0,0,19]:Integer, [4,96,0,0,20]:Integer, [4,96,0,0,21]:Integer, [4,96,0,0,22]:Integer, [4,96,0,0,23]:Integer, [4,96,0,0,24]:Integer, [4,96,0,0,25]:Integer, [4,96,0,0,26]:Integer, [4,96,0,0,27]:Integer, [4,96,0,0,28]:Integer, [4,96,0,0,29]:Integer, [4,96,0,0,30]:Integer, [4,96,0,0,31]:Integer, [4,96,0,0,32]:Integer, [4,96,0,0,33]:Integer, [4,96,0,0,34]:Integer, [4,96,0,0,35]:Integer, [4,96,0,0,36]:Integer, [4,96,0,0,37]:Integer, [4,96,0,0,38]:Integer, [4,96,0,0,39]:Integer, [4,96,8]:Integer, [4,96,9]:Integer, [4,96,10]:Integer, [4,96,11]:Integer, [4,96,12]:Integer, [4,96,13]:Integer, [4,96,14]:Integer, [4,96,15]:Integer, [4,96,16]:Integer, [4,96,17]:Integer, [4,96,18]:Integer, [4,96,19]:Integer, [4,96,20]:Integer, [4,96,21]:Integer, [4,96,22]:Integer, [4,96,23]:Integer, [4,96,24]:Integer, [4,96,25]:Integer, [4,96,26]:Integer, [4,96,27]:Integer, [4,96,28]:Integer, [4,96,29]:Integer, [4,96,30]:Integer, [4,96,31]:Integer, [4,96,32]:Integer, [4,96,33]:Integer, [4,96,34]:Integer, [4,96,35]:Integer, [4,96,36]:Integer, [4,96,37]:Integer, [4,96,38]:Integer, [4,96,39]:Integer, [4,104]:Pointer, [4,104,0]:Pointer, [4,104,0,0]:Integer, [4,104,8]:Integer, [4,104,9]:Integer, [4,104,10]:Integer, [4,104,11]:Integer, [4,104,12]:Integer, [4,104,13]:Integer, [4,104,14]:Integer, [4,104,15]:Integer, [4,104,16]:Integer, [4,104,17]:Integer, [4,104,18]:Integer, [4,104,19]:Integer, [4,104,20]:Integer, [4,104,21]:Integer, [4,104,22]:Integer, [4,104,23]:Integer, [4,104,24]:Integer, [4,104,25]:Integer, [4,104,26]:Integer, [4,104,27]:Integer, [4,104,28]:Integer, [4,104,29]:Integer, [4,104,30]:Integer, [4,104,31]:Integer, [4,104,32]:Integer, [4,104,33]:Integer, [4,104,34]:Integer, [4,104,35]:Integer, [4,104,36]:Integer, [4,104,37]:Integer, [4,104,38]:Integer, [4,104,39]:Integer, [4,112]:Pointer, [4,112,0]:Pointer, [4,112,0,0]:Pointer, [4,112,8]:Integer, [4,112,9]:Integer, [4,112,10]:Integer, [4,112,11]:Integer, [4,112,12]:Integer, [4,112,13]:Integer, [4,112,14]:Integer, [4,112,15]:Integer, [4,112,16]:Integer, [4,112,17]:Integer, [4,112,18]:Integer, [4,112,19]:Integer, [4,112,20]:Integer, [4,112,21]:Integer, [4,112,22]:Integer, [4,112,23]:Integer, [4,112,24]:Integer, [4,112,25]:Integer, [4,112,26]:Integer, [4,112,27]:Integer, [4,112,28]:Integer, [4,112,29]:Integer, [4,112,30]:Integer, [4,112,31]:Integer, [4,112,32]:Integer, [4,112,33]:Integer, [4,112,34]:Integer, [4,112,35]:Integer, [4,112,36]:Integer, [4,112,37]:Integer, [4,112,38]:Integer, [4,112,39]:Integer, [4,120]:Pointer, [4,120,0]:Pointer, [4,120,0,0]:Pointer, [4,120,0,0,0]:Pointer, [4,120,0,0,0,0]:Integer, [4,120,0,0,8]:Integer, [4,120,0,0,9]:Integer, [4,120,0,0,10]:Integer, [4,120,0,0,11]:Integer, [4,120,0,0,12]:Integer, [4,120,0,0,13]:Integer, [4,120,0,0,14]:Integer, [4,120,0,0,15]:Integer, [4,120,0,0,16]:Integer, [4,120,0,0,17]:Integer, [4,120,0,0,18]:Integer, [4,120,0,0,19]:Integer, [4,120,0,0,20]:Integer, [4,120,0,0,21]:Integer, [4,120,0,0,22]:Integer, [4,120,0,0,23]:Integer, [4,120,0,0,24]:Integer, [4,120,0,0,25]:Integer, [4,120,0,0,26]:Integer, [4,120,0,0,27]:Integer, [4,120,0,0,28]:Integer, [4,120,0,0,29]:Integer, [4,120,0,0,30]:Integer, [4,120,0,0,31]:Integer, [4,120,0,0,32]:Integer, [4,120,0,0,33]:Integer, [4,120,0,0,34]:Integer, [4,120,0,0,35]:Integer, [4,120,0,0,36]:Integer, [4,120,0,0,37]:Integer, [4,120,0,0,38]:Integer, [4,120,0,0,39]:Integer, [4,120,8]:Integer, [4,120,9]:Integer, [4,120,10]:Integer, [4,120,11]:Integer, [4,120,12]:Integer, [4,120,13]:Integer, [4,120,14]:Integer, [4,120,15]:Integer, [4,120,16]:Integer, [4,120,17]:Integer, [4,120,18]:Integer, [4,120,19]:Integer, [4,120,20]:Integer, [4,120,21]:Integer, [4,120,22]:Integer, [4,120,23]:Integer, [4,120,24]:Integer, [4,120,25]:Integer, [4,120,26]:Integer, [4,120,27]:Integer, [4,120,28]:Integer, [4,120,29]:Integer, [4,120,30]:Integer, [4,120,31]:Integer, [4,120,32]:Integer, [4,120,33]:Integer, [4,120,34]:Integer, [4,120,35]:Integer, [4,120,36]:Integer, [4,120,37]:Integer, [4,120,38]:Integer, [4,120,39]:Integer, [4,128]:Pointer, [4,128,0]:Pointer, [4,128,0,0]:Pointer, [4,128,0,0,0]:Pointer, [4,128,0,0,0,0]:Integer, [4,128,0,0,8]:Integer, [4,128,0,0,9]:Integer, [4,128,0,0,10]:Integer, [4,128,0,0,11]:Integer, [4,128,0,0,12]:Integer, [4,128,0,0,13]:Integer, [4,128,0,0,14]:Integer, [4,128,0,0,15]:Integer, [4,128,0,0,16]:Integer, [4,128,0,0,17]:Integer, [4,128,0,0,18]:Integer, [4,128,0,0,19]:Integer, [4,128,0,0,20]:Integer, [4,128,0,0,21]:Integer, [4,128,0,0,22]:Integer, [4,128,0,0,23]:Integer, [4,128,0,0,24]:Integer, [4,128,0,0,25]:Integer, [4,128,0,0,26]:Integer, [4,128,0,0,27]:Integer, [4,128,0,0,28]:Integer, [4,128,0,0,29]:Integer, [4,128,0,0,30]:Integer, [4,128,0,0,31]:Integer, [4,128,0,0,32]:Integer, [4,128,0,0,33]:Integer, [4,128,0,0,34]:Integer, [4,128,0,0,35]:Integer, [4,128,0,0,36]:Integer, [4,128,0,0,37]:Integer, [4,128,0,0,38]:Integer, [4,128,0,0,39]:Integer, [4,128,8]:Integer, [4,128,9]:Integer, [4,128,10]:Integer, [4,128,11]:Integer, [4,128,12]:Integer, [4,128,13]:Integer, [4,128,14]:Integer, [4,128,15]:Integer, [4,128,16]:Integer, [4,128,17]:Integer, [4,128,18]:Integer, [4,128,19]:Integer, [4,128,20]:Integer, [4,128,21]:Integer, [4,128,22]:Integer, [4,128,23]:Integer, [4,128,24]:Integer, [4,128,25]:Integer, [4,128,26]:Integer, [4,128,27]:Integer, [4,128,28]:Integer, [4,128,29]:Integer, [4,128,30]:Integer, [4,128,31]:Integer, [4,128,32]:Integer, [4,128,33]:Integer, [4,128,34]:Integer, [4,128,35]:Integer, [4,128,36]:Integer, [4,128,37]:Integer, [4,128,38]:Integer, [4,128,39]:Integer, [4,136]:Pointer, [4,136,0]:Pointer, [4,136,0,0]:Pointer, [4,136,8]:Integer, [4,136,9]:Integer, [4,136,10]:Integer, [4,136,11]:Integer, [4,136,12]:Integer, [4,136,13]:Integer, [4,136,14]:Integer, [4,136,15]:Integer, [4,136,16]:Integer, [4,136,17]:Integer, [4,136,18]:Integer, [4,136,19]:Integer, [4,136,20]:Integer, [4,136,21]:Integer, [4,136,22]:Integer, [4,136,23]:Integer, [4,136,24]:Integer, [4,136,25]:Integer, [4,136,26]:Integer, [4,136,27]:Integer, [4,136,28]:Integer, [4,136,29]:Integer, [4,136,30]:Integer, [4,136,31]:Integer, [4,136,32]:Integer, [4,136,33]:Integer, [4,136,34]:Integer, [4,136,35]:Integer, [4,136,36]:Integer, [4,136,37]:Integer, [4,136,38]:Integer, [4,136,39]:Integer, [4,144]:Float@double, [4,152]:Float@double, [4,160]:Float@double, [4,168]:Float@double, [4,176]:Integer, [4,177]:Integer, [4,178]:Integer, [4,179]:Integer, [4,180]:Integer, [4,181]:Integer, [4,182]:Integer, [4,183]:Integer, [4,184]:Integer, [4,185]:Integer, [4,186]:Integer, [4,187]:Integer, [4,188]:Integer, [4,189]:Integer, [4,190]:Integer, [4,191]:Integer, [4,192]:Integer, [4,193]:Integer, [4,200]:Integer, [4,201]:Integer, [4,202]:Integer, [4,203]:Integer, [4,204]:Integer, [4,205]:Integer, [4,206]:Integer, [4,207]:Integer, [4,208]:Integer, [4,209]:Integer, [4,210]:Integer, [4,211]:Integer, [4,212]:Integer, [4,213]:Integer, [4,214]:Integer, [4,215]:Integer, [4,216]:Integer, [4,224]:Integer, [4,225]:Integer, [4,226]:Integer, [4,227]:Integer, [4,228]:Integer, [4,229]:Integer, [4,230]:Integer, [4,231]:Integer, [4,232]:Integer, [4,233]:Integer, [4,234]:Integer, [4,235]:Integer, [4,236]:Integer, [4,237]:Integer, [4,238]:Integer, [4,239]:Integer, [5,0]:Float@double, [5,8]:Float@double, [5,16]:Float@double, [5,24]:Float@double, [5,32]:Integer, [5,33]:Integer, [5,34]:Integer, [5,35]:Integer, [5,36]:Integer, [5,37]:Integer, [5,38]:Integer, [5,39]:Integer, [5,40]:Integer, [5,41]:Integer, [5,42]:Integer, [5,43]:Integer, [5,44]:Integer, [5,45]:Integer, [5,46]:Integer, [5,47]:Integer, [5,48]:Integer, [5,49]:Integer, [5,56]:Integer, [5,57]:Integer, [5,58]:Integer, [5,59]:Integer, [5,60]:Integer, [5,61]:Integer, [5,62]:Integer, [5,63]:Integer, [5,64]:Integer, [5,65]:Integer, [5,66]:Integer, [5,67]:Integer, [5,68]:Integer, [5,69]:Integer, [5,70]:Integer, [5,71]:Integer, [5,72]:Integer, [5,80]:Integer, [5,81]:Integer, [5,82]:Integer, [5,83]:Integer, [5,84]:Integer, [5,85]:Integer, [5,86]:Integer, [5,87]:Integer, [5,88]:Pointer, [5,88,0]:Pointer, [5,88,0,0]:Float@double, [5,88,8]:Integer, [5,88,9]:Integer, [5,88,10]:Integer, [5,88,11]:Integer, [5,88,12]:Integer, [5,88,13]:Integer, [5,88,14]:Integer, [5,88,15]:Integer, [5,88,16]:Integer, [5,88,17]:Integer, [5,88,18]:Integer, [5,88,19]:Integer, [5,88,20]:Integer, [5,88,21]:Integer, [5,88,22]:Integer, [5,88,23]:Integer, [5,88,24]:Integer, [5,88,25]:Integer, [5,88,26]:Integer, [5,88,27]:Integer, [5,88,28]:Integer, [5,88,29]:Integer, [5,88,30]:Integer, [5,88,31]:Integer, [5,88,32]:Integer, [5,88,33]:Integer, [5,88,34]:Integer, [5,88,35]:Integer, [5,88,36]:Integer, [5,88,37]:Integer, [5,88,38]:Integer, [5,88,39]:Integer, [5,96]:Pointer, [5,96,0]:Pointer, [5,96,0,0]:Pointer, [5,96,0,0,0]:Pointer, [5,96,0,0,0,0]:Integer, [5,96,0,0,8]:Integer, [5,96,0,0,9]:Integer, [5,96,0,0,10]:Integer, [5,96,0,0,11]:Integer, [5,96,0,0,12]:Integer, [5,96,0,0,13]:Integer, [5,96,0,0,14]:Integer, [5,96,0,0,15]:Integer, [5,96,0,0,16]:Integer, [5,96,0,0,17]:Integer, [5,96,0,0,18]:Integer, [5,96,0,0,19]:Integer, [5,96,0,0,20]:Integer, [5,96,0,0,21]:Integer, [5,96,0,0,22]:Integer, [5,96,0,0,23]:Integer, [5,96,0,0,24]:Integer, [5,96,0,0,25]:Integer, [5,96,0,0,26]:Integer, [5,96,0,0,27]:Integer, [5,96,0,0,28]:Integer, [5,96,0,0,29]:Integer, [5,96,0,0,30]:Integer, [5,96,0,0,31]:Integer, [5,96,0,0,32]:Integer, [5,96,0,0,33]:Integer, [5,96,0,0,34]:Integer, [5,96,0,0,35]:Integer, [5,96,0,0,36]:Integer, [5,96,0,0,37]:Integer, [5,96,0,0,38]:Integer, [5,96,0,0,39]:Integer, [5,96,8]:Integer, [5,96,9]:Integer, [5,96,10]:Integer, [5,96,11]:Integer, [5,96,12]:Integer, [5,96,13]:Integer, [5,96,14]:Integer, [5,96,15]:Integer, [5,96,16]:Integer, [5,96,17]:Integer, [5,96,18]:Integer, [5,96,19]:Integer, [5,96,20]:Integer, [5,96,21]:Integer, [5,96,22]:Integer, [5,96,23]:Integer, [5,96,24]:Integer, [5,96,25]:Integer, [5,96,26]:Integer, [5,96,27]:Integer, [5,96,28]:Integer, [5,96,29]:Integer, [5,96,30]:Integer, [5,96,31]:Integer, [5,96,32]:Integer, [5,96,33]:Integer, [5,96,34]:Integer, [5,96,35]:Integer, [5,96,36]:Integer, [5,96,37]:Integer, [5,96,38]:Integer, [5,96,39]:Integer, [5,104]:Pointer, [5,104,0]:Pointer, [5,104,0,0]:Integer, [5,104,8]:Integer, [5,104,9]:Integer, [5,104,10]:Integer, [5,104,11]:Integer, [5,104,12]:Integer, [5,104,13]:Integer, [5,104,14]:Integer, [5,104,15]:Integer, [5,104,16]:Integer, [5,104,17]:Integer, [5,104,18]:Integer, [5,104,19]:Integer, [5,104,20]:Integer, [5,104,21]:Integer, [5,104,22]:Integer, [5,104,23]:Integer, [5,104,24]:Integer, [5,104,25]:Integer, [5,104,26]:Integer, [5,104,27]:Integer, [5,104,28]:Integer, [5,104,29]:Integer, [5,104,30]:Integer, [5,104,31]:Integer, [5,104,32]:Integer, [5,104,33]:Integer, [5,104,34]:Integer, [5,104,35]:Integer, [5,104,36]:Integer, [5,104,37]:Integer, [5,104,38]:Integer, [5,104,39]:Integer, [5,112]:Pointer, [5,112,0]:Pointer, [5,112,0,0]:Pointer, [5,112,8]:Integer, [5,112,9]:Integer, [5,112,10]:Integer, [5,112,11]:Integer, [5,112,12]:Integer, [5,112,13]:Integer, [5,112,14]:Integer, [5,112,15]:Integer, [5,112,16]:Integer, [5,112,17]:Integer, [5,112,18]:Integer, [5,112,19]:Integer, [5,112,20]:Integer, [5,112,21]:Integer, [5,112,22]:Integer, [5,112,23]:Integer, [5,112,24]:Integer, [5,112,25]:Integer, [5,112,26]:Integer, [5,112,27]:Integer, [5,112,28]:Integer, [5,112,29]:Integer, [5,112,30]:Integer, [5,112,31]:Integer, [5,112,32]:Integer, [5,112,33]:Integer, [5,112,34]:Integer, [5,112,35]:Integer, [5,112,36]:Integer, [5,112,37]:Integer, [5,112,38]:Integer, [5,112,39]:Integer, [5,120]:Pointer, [5,120,0]:Pointer, [5,120,0,0]:Pointer, [5,120,0,0,0]:Pointer, [5,120,0,0,0,0]:Integer, [5,120,0,0,8]:Integer, [5,120,0,0,9]:Integer, [5,120,0,0,10]:Integer, [5,120,0,0,11]:Integer, [5,120,0,0,12]:Integer, [5,120,0,0,13]:Integer, [5,120,0,0,14]:Integer, [5,120,0,0,15]:Integer, [5,120,0,0,16]:Integer, [5,120,0,0,17]:Integer, [5,120,0,0,18]:Integer, [5,120,0,0,19]:Integer, [5,120,0,0,20]:Integer, [5,120,0,0,21]:Integer, [5,120,0,0,22]:Integer, [5,120,0,0,23]:Integer, [5,120,0,0,24]:Integer, [5,120,0,0,25]:Integer, [5,120,0,0,26]:Integer, [5,120,0,0,27]:Integer, [5,120,0,0,28]:Integer, [5,120,0,0,29]:Integer, [5,120,0,0,30]:Integer, [5,120,0,0,31]:Integer, [5,120,0,0,32]:Integer, [5,120,0,0,33]:Integer, [5,120,0,0,34]:Integer, [5,120,0,0,35]:Integer, [5,120,0,0,36]:Integer, [5,120,0,0,37]:Integer, [5,120,0,0,38]:Integer, [5,120,0,0,39]:Integer, [5,120,8]:Integer, [5,120,9]:Integer, [5,120,10]:Integer, [5,120,11]:Integer, [5,120,12]:Integer, [5,120,13]:Integer, [5,120,14]:Integer, [5,120,15]:Integer, [5,120,16]:Integer, [5,120,17]:Integer, [5,120,18]:Integer, [5,120,19]:Integer, [5,120,20]:Integer, [5,120,21]:Integer, [5,120,22]:Integer, [5,120,23]:Integer, [5,120,24]:Integer, [5,120,25]:Integer, [5,120,26]:Integer, [5,120,27]:Integer, [5,120,28]:Integer, [5,120,29]:Integer, [5,120,30]:Integer, [5,120,31]:Integer, [5,120,32]:Integer, [5,120,33]:Integer, [5,120,34]:Integer, [5,120,35]:Integer, [5,120,36]:Integer, [5,120,37]:Integer, [5,120,38]:Integer, [5,120,39]:Integer, [5,128]:Pointer, [5,128,0]:Pointer, [5,128,0,0]:Pointer, [5,128,0,0,0]:Pointer, [5,128,0,0,0,0]:Integer, [5,128,0,0,8]:Integer, [5,128,0,0,9]:Integer, [5,128,0,0,10]:Integer, [5,128,0,0,11]:Integer, [5,128,0,0,12]:Integer, [5,128,0,0,13]:Integer, [5,128,0,0,14]:Integer, [5,128,0,0,15]:Integer, [5,128,0,0,16]:Integer, [5,128,0,0,17]:Integer, [5,128,0,0,18]:Integer, [5,128,0,0,19]:Integer, [5,128,0,0,20]:Integer, [5,128,0,0,21]:Integer, [5,128,0,0,22]:Integer, [5,128,0,0,23]:Integer, [5,128,0,0,24]:Integer, [5,128,0,0,25]:Integer, [5,128,0,0,26]:Integer, [5,128,0,0,27]:Integer, [5,128,0,0,28]:Integer, [5,128,0,0,29]:Integer, [5,128,0,0,30]:Integer, [5,128,0,0,31]:Integer, [5,128,0,0,32]:Integer, [5,128,0,0,33]:Integer, [5,128,0,0,34]:Integer, [5,128,0,0,35]:Integer, [5,128,0,0,36]:Integer, [5,128,0,0,37]:Integer, [5,128,0,0,38]:Integer, [5,128,0,0,39]:Integer, [5,128,8]:Integer, [5,128,9]:Integer, [5,128,10]:Integer, [5,128,11]:Integer, [5,128,12]:Integer, [5,128,13]:Integer, [5,128,14]:Integer, [5,128,15]:Integer, [5,128,16]:Integer, [5,128,17]:Integer, [5,128,18]:Integer, [5,128,19]:Integer, [5,128,20]:Integer, [5,128,21]:Integer, [5,128,22]:Integer, [5,128,23]:Integer, [5,128,24]:Integer, [5,128,25]:Integer, [5,128,26]:Integer, [5,128,27]:Integer, [5,128,28]:Integer, [5,128,29]:Integer, [5,128,30]:Integer, [5,128,31]:Integer, [5,128,32]:Integer, [5,128,33]:Integer, [5,128,34]:Integer, [5,128,35]:Integer, [5,128,36]:Integer, [5,128,37]:Integer, [5,128,38]:Integer, [5,128,39]:Integer, [5,136]:Pointer, [5,136,0]:Pointer, [5,136,0,0]:Pointer, [5,136,8]:Integer, [5,136,9]:Integer, [5,136,10]:Integer, [5,136,11]:Integer, [5,136,12]:Integer, [5,136,13]:Integer, [5,136,14]:Integer, [5,136,15]:Integer, [5,136,16]:Integer, [5,136,17]:Integer, [5,136,18]:Integer, [5,136,19]:Integer, [5,136,20]:Integer, [5,136,21]:Integer, [5,136,22]:Integer, [5,136,23]:Integer, [5,136,24]:Integer, [5,136,25]:Integer, [5,136,26]:Integer, [5,136,27]:Integer, [5,136,28]:Integer, [5,136,29]:Integer, [5,136,30]:Integer, [5,136,31]:Integer, [5,136,32]:Integer, [5,136,33]:Integer, [5,136,34]:Integer, [5,136,35]:Integer, [5,136,36]:Integer, [5,136,37]:Integer, [5,136,38]:Integer, [5,136,39]:Integer, [5,144]:Float@double, [5,152]:Float@double, [5,160]:Float@double, [5,168]:Float@double, [5,176]:Integer, [5,177]:Integer, [5,178]:Integer, [5,179]:Integer, [5,180]:Integer, [5,181]:Integer, [5,182]:Integer, [5,183]:Integer, [5,184]:Integer, [5,185]:Integer, [5,186]:Integer, [5,187]:Integer, [5,188]:Integer, [5,189]:Integer, [5,190]:Integer, [5,191]:Integer, [5,192]:Integer, [5,193]:Integer, [5,200]:Integer, [5,201]:Integer, [5,202]:Integer, [5,203]:Integer, [5,204]:Integer, [5,205]:Integer, [5,206]:Integer, [5,207]:Integer, [5,208]:Integer, [5,209]:Integer, [5,210]:Integer, [5,211]:Integer, [5,212]:Integer, [5,213]:Integer, [5,214]:Integer, [5,215]:Integer, [5,216]:Integer, [5,224]:Integer, [5,225]:Integer, [5,226]:Integer, [5,227]:Integer, [5,228]:Integer, [5,229]:Integer, [5,230]:Integer, [5,231]:Integer, [5,232]:Integer, [5,233]:Integer, [5,234]:Integer, [5,235]:Integer, [5,236]:Integer, [5,237]:Integer, [5,238]:Integer, [5,239]:Integer, [6,0]:Float@double, [6,8]:Float@double, [6,16]:Float@double, [6,24]:Float@double, [6,32]:Integer, [6,33]:Integer, [6,34]:Integer, [6,35]:Integer, [6,36]:Integer, [6,37]:Integer, [6,38]:Integer, [6,39]:Integer, [6,40]:Integer, [6,41]:Integer, [6,42]:Integer, [6,43]:Integer, [6,44]:Integer, [6,45]:Integer, [6,46]:Integer, [6,47]:Integer, [6,48]:Integer, [6,49]:Integer, [6,56]:Integer, [6,57]:Integer, [6,58]:Integer, [6,59]:Integer, [6,60]:Integer, [6,61]:Integer, [6,62]:Integer, [6,63]:Integer, [6,64]:Integer, [6,65]:Integer, [6,66]:Integer, [6,67]:Integer, [6,68]:Integer, [6,69]:Integer, [6,70]:Integer, [6,71]:Integer, [6,72]:Integer, [6,80]:Integer, [6,81]:Integer, [6,82]:Integer, [6,83]:Integer, [6,84]:Integer, [6,85]:Integer, [6,86]:Integer, [6,87]:Integer, [6,88]:Pointer, [6,88,0]:Pointer, [6,88,0,0]:Float@double, [6,88,8]:Integer, [6,88,9]:Integer, [6,88,10]:Integer, [6,88,11]:Integer, [6,88,12]:Integer, [6,88,13]:Integer, [6,88,14]:Integer, [6,88,15]:Integer, [6,88,16]:Integer, [6,88,17]:Integer, [6,88,18]:Integer, [6,88,19]:Integer, [6,88,20]:Integer, [6,88,21]:Integer, [6,88,22]:Integer, [6,88,23]:Integer, [6,88,24]:Integer, [6,88,25]:Integer, [6,88,26]:Integer, [6,88,27]:Integer, [6,88,28]:Integer, [6,88,29]:Integer, [6,88,30]:Integer, [6,88,31]:Integer, [6,88,32]:Integer, [6,88,33]:Integer, [6,88,34]:Integer, [6,88,35]:Integer, [6,88,36]:Integer, [6,88,37]:Integer, [6,88,38]:Integer, [6,88,39]:Integer, [6,96]:Pointer, [6,96,0]:Pointer, [6,96,0,0]:Pointer, [6,96,0,0,0]:Pointer, [6,96,0,0,0,0]:Integer, [6,96,0,0,8]:Integer, [6,96,0,0,9]:Integer, [6,96,0,0,10]:Integer, [6,96,0,0,11]:Integer, [6,96,0,0,12]:Integer, [6,96,0,0,13]:Integer, [6,96,0,0,14]:Integer, [6,96,0,0,15]:Integer, [6,96,0,0,16]:Integer, [6,96,0,0,17]:Integer, [6,96,0,0,18]:Integer, [6,96,0,0,19]:Integer, [6,96,0,0,20]:Integer, [6,96,0,0,21]:Integer, [6,96,0,0,22]:Integer, [6,96,0,0,23]:Integer, [6,96,0,0,24]:Integer, [6,96,0,0,25]:Integer, [6,96,0,0,26]:Integer, [6,96,0,0,27]:Integer, [6,96,0,0,28]:Integer, [6,96,0,0,29]:Integer, [6,96,0,0,30]:Integer, [6,96,0,0,31]:Integer, [6,96,0,0,32]:Integer, [6,96,0,0,33]:Integer, [6,96,0,0,34]:Integer, [6,96,0,0,35]:Integer, [6,96,0,0,36]:Integer, [6,96,0,0,37]:Integer, [6,96,0,0,38]:Integer, [6,96,0,0,39]:Integer, [6,96,8]:Integer, [6,96,9]:Integer, [6,96,10]:Integer, [6,96,11]:Integer, [6,96,12]:Integer, [6,96,13]:Integer, [6,96,14]:Integer, [6,96,15]:Integer, [6,96,16]:Integer, [6,96,17]:Integer, [6,96,18]:Integer, [6,96,19]:Integer, [6,96,20]:Integer, [6,96,21]:Integer, [6,96,22]:Integer, [6,96,23]:Integer, [6,96,24]:Integer, [6,96,25]:Integer, [6,96,26]:Integer, [6,96,27]:Integer, [6,96,28]:Integer, [6,96,29]:Integer, [6,96,30]:Integer, [6,96,31]:Integer, [6,96,32]:Integer, [6,96,33]:Integer, [6,96,34]:Integer, [6,96,35]:Integer, [6,96,36]:Integer, [6,96,37]:Integer, [6,96,38]:Integer, [6,96,39]:Integer, [6,104]:Pointer, [6,104,0]:Pointer, [6,104,0,0]:Integer, [6,104,8]:Integer, [6,104,9]:Integer, [6,104,10]:Integer, [6,104,11]:Integer, [6,104,12]:Integer, [6,104,13]:Integer, [6,104,14]:Integer, [6,104,15]:Integer, [6,104,16]:Integer, [6,104,17]:Integer, [6,104,18]:Integer, [6,104,19]:Integer, [6,104,20]:Integer, [6,104,21]:Integer, [6,104,22]:Integer, [6,104,23]:Integer, [6,104,24]:Integer, [6,104,25]:Integer, [6,104,26]:Integer, [6,104,27]:Integer, [6,104,28]:Integer, [6,104,29]:Integer, [6,104,30]:Integer, [6,104,31]:Integer, [6,104,32]:Integer, [6,104,33]:Integer, [6,104,34]:Integer, [6,104,35]:Integer, [6,104,36]:Integer, [6,104,37]:Integer, [6,104,38]:Integer, [6,104,39]:Integer, [6,112]:Pointer, [6,112,0]:Pointer, [6,112,0,0]:Pointer, [6,112,8]:Integer, [6,112,9]:Integer, [6,112,10]:Integer, [6,112,11]:Integer, [6,112,12]:Integer, [6,112,13]:Integer, [6,112,14]:Integer, [6,112,15]:Integer, [6,112,16]:Integer, [6,112,17]:Integer, [6,112,18]:Integer, [6,112,19]:Integer, [6,112,20]:Integer, [6,112,21]:Integer, [6,112,22]:Integer, [6,112,23]:Integer, [6,112,24]:Integer, [6,112,25]:Integer, [6,112,26]:Integer, [6,112,27]:Integer, [6,112,28]:Integer, [6,112,29]:Integer, [6,112,30]:Integer, [6,112,31]:Integer, [6,112,32]:Integer, [6,112,33]:Integer, [6,112,34]:Integer, [6,112,35]:Integer, [6,112,36]:Integer, [6,112,37]:Integer, [6,112,38]:Integer, [6,112,39]:Integer, [6,120]:Pointer, [6,120,0]:Pointer, [6,120,0,0]:Pointer, [6,120,0,0,0]:Pointer, [6,120,0,0,0,0]:Integer, [6,120,0,0,8]:Integer, [6,120,0,0,9]:Integer, [6,120,0,0,10]:Integer, [6,120,0,0,11]:Integer, [6,120,0,0,12]:Integer, [6,120,0,0,13]:Integer, [6,120,0,0,14]:Integer, [6,120,0,0,15]:Integer, [6,120,0,0,16]:Integer, [6,120,0,0,17]:Integer, [6,120,0,0,18]:Integer, [6,120,0,0,19]:Integer, [6,120,0,0,20]:Integer, [6,120,0,0,21]:Integer, [6,120,0,0,22]:Integer, [6,120,0,0,23]:Integer, [6,120,0,0,24]:Integer, [6,120,0,0,25]:Integer, [6,120,0,0,26]:Integer, [6,120,0,0,27]:Integer, [6,120,0,0,28]:Integer, [6,120,0,0,29]:Integer, [6,120,0,0,30]:Integer, [6,120,0,0,31]:Integer, [6,120,0,0,32]:Integer, [6,120,0,0,33]:Integer, [6,120,0,0,34]:Integer, [6,120,0,0,35]:Integer, [6,120,0,0,36]:Integer, [6,120,0,0,37]:Integer, [6,120,0,0,38]:Integer, [6,120,0,0,39]:Integer, [6,120,8]:Integer, [6,120,9]:Integer, [6,120,10]:Integer, [6,120,11]:Integer, [6,120,12]:Integer, [6,120,13]:Integer, [6,120,14]:Integer, [6,120,15]:Integer, [6,120,16]:Integer, [6,120,17]:Integer, [6,120,18]:Integer, [6,120,19]:Integer, [6,120,20]:Integer, [6,120,21]:Integer, [6,120,22]:Integer, [6,120,23]:Integer, [6,120,24]:Integer, [6,120,25]:Integer, [6,120,26]:Integer, [6,120,27]:Integer, [6,120,28]:Integer, [6,120,29]:Integer, [6,120,30]:Integer, [6,120,31]:Integer, [6,120,32]:Integer, [6,120,33]:Integer, [6,120,34]:Integer, [6,120,35]:Integer, [6,120,36]:Integer, [6,120,37]:Integer, [6,120,38]:Integer, [6,120,39]:Integer, [6,128]:Pointer, [6,128,0]:Pointer, [6,128,0,0]:Pointer, [6,128,0,0,0]:Pointer, [6,128,0,0,0,0]:Integer, [6,128,0,0,8]:Integer, [6,128,0,0,9]:Integer, [6,128,0,0,10]:Integer, [6,128,0,0,11]:Integer, [6,128,0,0,12]:Integer, [6,128,0,0,13]:Integer, [6,128,0,0,14]:Integer, [6,128,0,0,15]:Integer, [6,128,0,0,16]:Integer, [6,128,0,0,17]:Integer, [6,128,0,0,18]:Integer, [6,128,0,0,19]:Integer, [6,128,0,0,20]:Integer, [6,128,0,0,21]:Integer, [6,128,0,0,22]:Integer, [6,128,0,0,23]:Integer, [6,128,0,0,24]:Integer, [6,128,0,0,25]:Integer, [6,128,0,0,26]:Integer, [6,128,0,0,27]:Integer, [6,128,0,0,28]:Integer, [6,128,0,0,29]:Integer, [6,128,0,0,30]:Integer, [6,128,0,0,31]:Integer, [6,128,0,0,32]:Integer, [6,128,0,0,33]:Integer, [6,128,0,0,34]:Integer, [6,128,0,0,35]:Integer, [6,128,0,0,36]:Integer, [6,128,0,0,37]:Integer, [6,128,0,0,38]:Integer, [6,128,0,0,39]:Integer, [6,128,8]:Integer, [6,128,9]:Integer, [6,128,10]:Integer, [6,128,11]:Integer, [6,128,12]:Integer, [6,128,13]:Integer, [6,128,14]:Integer, [6,128,15]:Integer, [6,128,16]:Integer, [6,128,17]:Integer, [6,128,18]:Integer, [6,128,19]:Integer, [6,128,20]:Integer, [6,128,21]:Integer, [6,128,22]:Integer, [6,128,23]:Integer, [6,128,24]:Integer, [6,128,25]:Integer, [6,128,26]:Integer, [6,128,27]:Integer, [6,128,28]:Integer, [6,128,29]:Integer, [6,128,30]:Integer, [6,128,31]:Integer, [6,128,32]:Integer, [6,128,33]:Integer, [6,128,34]:Integer, [6,128,35]:Integer, [6,128,36]:Integer, [6,128,37]:Integer, [6,128,38]:Integer, [6,128,39]:Integer, [6,136]:Pointer, [6,136,0]:Pointer, [6,136,0,0]:Pointer, [6,136,8]:Integer, [6,136,9]:Integer, [6,136,10]:Integer, [6,136,11]:Integer, [6,136,12]:Integer, [6,136,13]:Integer, [6,136,14]:Integer, [6,136,15]:Integer, [6,136,16]:Integer, [6,136,17]:Integer, [6,136,18]:Integer, [6,136,19]:Integer, [6,136,20]:Integer, [6,136,21]:Integer, [6,136,22]:Integer, [6,136,23]:Integer, [6,136,24]:Integer, [6,136,25]:Integer, [6,136,26]:Integer, [6,136,27]:Integer, [6,136,28]:Integer, [6,136,29]:Integer, [6,136,30]:Integer, [6,136,31]:Integer, [6,136,32]:Integer, [6,136,33]:Integer, [6,136,34]:Integer, [6,136,35]:Integer, [6,136,36]:Integer, [6,136,37]:Integer, [6,136,38]:Integer, [6,136,39]:Integer, [6,144]:Float@double, [6,152]:Float@double, [6,160]:Float@double, [6,168]:Float@double, [6,176]:Integer, [6,177]:Integer, [6,178]:Integer, [6,179]:Integer, [6,180]:Integer, [6,181]:Integer, [6,182]:Integer, [6,183]:Integer, [6,184]:Integer, [6,185]:Integer, [6,186]:Integer, [6,187]:Integer, [6,188]:Integer, [6,189]:Integer, [6,190]:Integer, [6,191]:Integer, [6,192]:Integer, [6,193]:Integer, [6,200]:Integer, [6,201]:Integer, [6,202]:Integer, [6,203]:Integer, [6,204]:Integer, [6,205]:Integer, [6,206]:Integer, [6,207]:Integer, [6,208]:Integer, [6,209]:Integer, [6,210]:Integer, [6,211]:Integer, [6,212]:Integer, [6,213]:Integer, [6,214]:Integer, [6,215]:Integer, [6,216]:Integer, [6,224]:Integer, [6,225]:Integer, [6,226]:Integer, [6,227]:Integer, [6,228]:Integer, [6,229]:Integer, [6,230]:Integer, [6,231]:Integer, [6,232]:Integer, [6,233]:Integer, [6,234]:Integer, [6,235]:Integer, [6,236]:Integer, [6,237]:Integer, [6,238]:Integer, [6,239]:Integer, [7,0]:Float@double, [7,8]:Float@double, [7,16]:Float@double, [7,24]:Float@double, [7,32]:Integer, [7,33]:Integer, [7,34]:Integer, [7,35]:Integer, [7,36]:Integer, [7,37]:Integer, [7,38]:Integer, [7,39]:Integer, [7,40]:Integer, [7,41]:Integer, [7,42]:Integer, [7,43]:Integer, [7,44]:Integer, [7,45]:Integer, [7,46]:Integer, [7,47]:Integer, [7,48]:Integer, [7,49]:Integer, [7,56]:Integer, [7,57]:Integer, [7,58]:Integer, [7,59]:Integer, [7,60]:Integer, [7,61]:Integer, [7,62]:Integer, [7,63]:Integer, [7,64]:Integer, [7,65]:Integer, [7,66]:Integer, [7,67]:Integer, [7,68]:Integer, [7,69]:Integer, [7,70]:Integer, [7,71]:Integer, [7,72]:Integer, [7,80]:Integer, [7,81]:Integer, [7,82]:Integer, [7,83]:Integer, [7,84]:Integer, [7,85]:Integer, [7,86]:Integer, [7,87]:Integer, [7,88]:Pointer, [7,88,0]:Pointer, [7,88,0,0]:Float@double, [7,88,8]:Integer, [7,88,9]:Integer, [7,88,10]:Integer, [7,88,11]:Integer, [7,88,12]:Integer, [7,88,13]:Integer, [7,88,14]:Integer, [7,88,15]:Integer, [7,88,16]:Integer, [7,88,17]:Integer, [7,88,18]:Integer, [7,88,19]:Integer, [7,88,20]:Integer, [7,88,21]:Integer, [7,88,22]:Integer, [7,88,23]:Integer, [7,88,24]:Integer, [7,88,25]:Integer, [7,88,26]:Integer, [7,88,27]:Integer, [7,88,28]:Integer, [7,88,29]:Integer, [7,88,30]:Integer, [7,88,31]:Integer, [7,88,32]:Integer, [7,88,33]:Integer, [7,88,34]:Integer, [7,88,35]:Integer, [7,88,36]:Integer, [7,88,37]:Integer, [7,88,38]:Integer, [7,88,39]:Integer, [7,96]:Pointer, [7,96,0]:Pointer, [7,96,0,0]:Pointer, [7,96,0,0,0]:Pointer, [7,96,0,0,0,0]:Integer, [7,96,0,0,8]:Integer, [7,96,0,0,9]:Integer, [7,96,0,0,10]:Integer, [7,96,0,0,11]:Integer, [7,96,0,0,12]:Integer, [7,96,0,0,13]:Integer, [7,96,0,0,14]:Integer, [7,96,0,0,15]:Integer, [7,96,0,0,16]:Integer, [7,96,0,0,17]:Integer, [7,96,0,0,18]:Integer, [7,96,0,0,19]:Integer, [7,96,0,0,20]:Integer, [7,96,0,0,21]:Integer, [7,96,0,0,22]:Integer, [7,96,0,0,23]:Integer, [7,96,0,0,24]:Integer, [7,96,0,0,25]:Integer, [7,96,0,0,26]:Integer, [7,96,0,0,27]:Integer, [7,96,0,0,28]:Integer, [7,96,0,0,29]:Integer, [7,96,0,0,30]:Integer, [7,96,0,0,31]:Integer, [7,96,0,0,32]:Integer, [7,96,0,0,33]:Integer, [7,96,0,0,34]:Integer, [7,96,0,0,35]:Integer, [7,96,0,0,36]:Integer, [7,96,0,0,37]:Integer, [7,96,0,0,38]:Integer, [7,96,0,0,39]:Integer, [7,96,8]:Integer, [7,96,9]:Integer, [7,96,10]:Integer, [7,96,11]:Integer, [7,96,12]:Integer, [7,96,13]:Integer, [7,96,14]:Integer, [7,96,15]:Integer, [7,96,16]:Integer, [7,96,17]:Integer, [7,96,18]:Integer, [7,96,19]:Integer, [7,96,20]:Integer, [7,96,21]:Integer, [7,96,22]:Integer, [7,96,23]:Integer, [7,96,24]:Integer, [7,96,25]:Integer, [7,96,26]:Integer, [7,96,27]:Integer, [7,96,28]:Integer, [7,96,29]:Integer, [7,96,30]:Integer, [7,96,31]:Integer, [7,96,32]:Integer, [7,96,33]:Integer, [7,96,34]:Integer, [7,96,35]:Integer, [7,96,36]:Integer, [7,96,37]:Integer, [7,96,38]:Integer, [7,96,39]:Integer, [7,104]:Pointer, [7,104,0]:Pointer, [7,104,0,0]:Integer, [7,104,8]:Integer, [7,104,9]:Integer, [7,104,10]:Integer, [7,104,11]:Integer, [7,104,12]:Integer, [7,104,13]:Integer, [7,104,14]:Integer, [7,104,15]:Integer, [7,104,16]:Integer, [7,104,17]:Integer, [7,104,18]:Integer, [7,104,19]:Integer, [7,104,20]:Integer, [7,104,21]:Integer, [7,104,22]:Integer, [7,104,23]:Integer, [7,104,24]:Integer, [7,104,25]:Integer, [7,104,26]:Integer, [7,104,27]:Integer, [7,104,28]:Integer, [7,104,29]:Integer, [7,104,30]:Integer, [7,104,31]:Integer, [7,104,32]:Integer, [7,104,33]:Integer, [7,104,34]:Integer, [7,104,35]:Integer, [7,104,36]:Integer, [7,104,37]:Integer, [7,104,38]:Integer, [7,104,39]:Integer, [7,112]:Pointer, [7,112,0]:Pointer, [7,112,0,0]:Pointer, [7,112,8]:Integer, [7,112,9]:Integer, [7,112,10]:Integer, [7,112,11]:Integer, [7,112,12]:Integer, [7,112,13]:Integer, [7,112,14]:Integer, [7,112,15]:Integer, [7,112,16]:Integer, [7,112,17]:Integer, [7,112,18]:Integer, [7,112,19]:Integer, [7,112,20]:Integer, [7,112,21]:Integer, [7,112,22]:Integer, [7,112,23]:Integer, [7,112,24]:Integer, [7,112,25]:Integer, [7,112,26]:Integer, [7,112,27]:Integer, [7,112,28]:Integer, [7,112,29]:Integer, [7,112,30]:Integer, [7,112,31]:Integer, [7,112,32]:Integer, [7,112,33]:Integer, [7,112,34]:Integer, [7,112,35]:Integer, [7,112,36]:Integer, [7,112,37]:Integer, [7,112,38]:Integer, [7,112,39]:Integer, [7,120]:Pointer, [7,120,0]:Pointer, [7,120,0,0]:Pointer, [7,120,0,0,0]:Pointer, [7,120,0,0,0,0]:Integer, [7,120,0,0,8]:Integer, [7,120,0,0,9]:Integer, [7,120,0,0,10]:Integer, [7,120,0,0,11]:Integer, [7,120,0,0,12]:Integer, [7,120,0,0,13]:Integer, [7,120,0,0,14]:Integer, [7,120,0,0,15]:Integer, [7,120,0,0,16]:Integer, [7,120,0,0,17]:Integer, [7,120,0,0,18]:Integer, [7,120,0,0,19]:Integer, [7,120,0,0,20]:Integer, [7,120,0,0,21]:Integer, [7,120,0,0,22]:Integer, [7,120,0,0,23]:Integer, [7,120,0,0,24]:Integer, [7,120,0,0,25]:Integer, [7,120,0,0,26]:Integer, [7,120,0,0,27]:Integer, [7,120,0,0,28]:Integer, [7,120,0,0,29]:Integer, [7,120,0,0,30]:Integer, [7,120,0,0,31]:Integer, [7,120,0,0,32]:Integer, [7,120,0,0,33]:Integer, [7,120,0,0,34]:Integer, [7,120,0,0,35]:Integer, [7,120,0,0,36]:Integer, [7,120,0,0,37]:Integer, [7,120,0,0,38]:Integer, [7,120,0,0,39]:Integer, [7,120,8]:Integer, [7,120,9]:Integer, [7,120,10]:Integer, [7,120,11]:Integer, [7,120,12]:Integer, [7,120,13]:Integer, [7,120,14]:Integer, [7,120,15]:Integer, [7,120,16]:Integer, [7,120,17]:Integer, [7,120,18]:Integer, [7,120,19]:Integer, [7,120,20]:Integer, [7,120,21]:Integer, [7,120,22]:Integer, [7,120,23]:Integer, [7,120,24]:Integer, [7,120,25]:Integer, [7,120,26]:Integer, [7,120,27]:Integer, [7,120,28]:Integer, [7,120,29]:Integer, [7,120,30]:Integer, [7,120,31]:Integer, [7,120,32]:Integer, [7,120,33]:Integer, [7,120,34]:Integer, [7,120,35]:Integer, [7,120,36]:Integer, [7,120,37]:Integer, [7,120,38]:Integer, [7,120,39]:Integer, [7,128]:Pointer, [7,128,0]:Pointer, [7,128,0,0]:Pointer, [7,128,0,0,0]:Pointer, [7,128,0,0,0,0]:Integer, [7,128,0,0,8]:Integer, [7,128,0,0,9]:Integer, [7,128,0,0,10]:Integer, [7,128,0,0,11]:Integer, [7,128,0,0,12]:Integer, [7,128,0,0,13]:Integer, [7,128,0,0,14]:Integer, [7,128,0,0,15]:Integer, [7,128,0,0,16]:Integer, [7,128,0,0,17]:Integer, [7,128,0,0,18]:Integer, [7,128,0,0,19]:Integer, [7,128,0,0,20]:Integer, [7,128,0,0,21]:Integer, [7,128,0,0,22]:Integer, [7,128,0,0,23]:Integer, [7,128,0,0,24]:Integer, [7,128,0,0,25]:Integer, [7,128,0,0,26]:Integer, [7,128,0,0,27]:Integer, [7,128,0,0,28]:Integer, [7,128,0,0,29]:Integer, [7,128,0,0,30]:Integer, [7,128,0,0,31]:Integer, [7,128,0,0,32]:Integer, [7,128,0,0,33]:Integer, [7,128,0,0,34]:Integer, [7,128,0,0,35]:Integer, [7,128,0,0,36]:Integer, [7,128,0,0,37]:Integer, [7,128,0,0,38]:Integer, [7,128,0,0,39]:Integer, [7,128,8]:Integer, [7,128,9]:Integer, [7,128,10]:Integer, [7,128,11]:Integer, [7,128,12]:Integer, [7,128,13]:Integer, [7,128,14]:Integer, [7,128,15]:Integer, [7,128,16]:Integer, [7,128,17]:Integer, [7,128,18]:Integer, [7,128,19]:Integer, [7,128,20]:Integer, [7,128,21]:Integer, [7,128,22]:Integer, [7,128,23]:Integer, [7,128,24]:Integer, [7,128,25]:Integer, [7,128,26]:Integer, [7,128,27]:Integer, [7,128,28]:Integer, [7,128,29]:Integer, [7,128,30]:Integer, [7,128,31]:Integer, [7,128,32]:Integer, [7,128,33]:Integer, [7,128,34]:Integer, [7,128,35]:Integer, [7,128,36]:Integer, [7,128,37]:Integer, [7,128,38]:Integer, [7,128,39]:Integer, [7,136]:Pointer, [7,136,0]:Pointer, [7,136,0,0]:Pointer, [7,136,8]:Integer, [7,136,9]:Integer, [7,136,10]:Integer, [7,136,11]:Integer, [7,136,12]:Integer, [7,136,13]:Integer, [7,136,14]:Integer, [7,136,15]:Integer, [7,136,16]:Integer, [7,136,17]:Integer, [7,136,18]:Integer, [7,136,19]:Integer, [7,136,20]:Integer, [7,136,21]:Integer, [7,136,22]:Integer, [7,136,23]:Integer, [7,136,24]:Integer, [7,136,25]:Integer, [7,136,26]:Integer, [7,136,27]:Integer, [7,136,28]:Integer, [7,136,29]:Integer, [7,136,30]:Integer, [7,136,31]:Integer, [7,136,32]:Integer, [7,136,33]:Integer, [7,136,34]:Integer, [7,136,35]:Integer, [7,136,36]:Integer, [7,136,37]:Integer, [7,136,38]:Integer, [7,136,39]:Integer, [7,144]:Float@double, [7,152]:Float@double, [7,160]:Float@double, [7,168]:Float@double, [7,176]:Integer, [7,177]:Integer, [7,178]:Integer, [7,179]:Integer, [7,180]:Integer, [7,181]:Integer, [7,182]:Integer, [7,183]:Integer, [7,184]:Integer, [7,185]:Integer, [7,186]:Integer, [7,187]:Integer, [7,188]:Integer, [7,189]:Integer, [7,190]:Integer, [7,191]:Integer, [7,192]:Integer, [7,193]:Integer, [7,200]:Integer, [7,201]:Integer, [7,202]:Integer, [7,203]:Integer, [7,204]:Integer, [7,205]:Integer, [7,206]:Integer, [7,207]:Integer, [7,208]:Integer, [7,209]:Integer, [7,210]:Integer, [7,211]:Integer, [7,212]:Integer, [7,213]:Integer, [7,214]:Integer, [7,215]:Integer, [7,216]:Integer, [7,224]:Integer, [7,225]:Integer, [7,226]:Integer, [7,227]:Integer, [7,228]:Integer, [7,229]:Integer, [7,230]:Integer, [7,231]:Integer, [7,232]:Integer, [7,233]:Integer, [7,234]:Integer, [7,235]:Integer, [7,236]:Integer, [7,237]:Integer, [7,238]:Integer, [7,239]:Integer}
│ 
│ Stacktrace:
│  [1] AffineFEOperator
│    @ ~/.julia/packages/Gridap/971dU/src/FESpaces/AffineFEOperators.jl:47
│  [2] AffineFEOperator
│    @ ~/.julia/packages/Gridap/971dU/src/FESpaces/AffineFEOperators.jl:51
│  [3] displacements
│    @ ~/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:42
│  [4] displacements
│    @ ~/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/cy24l/src/utils.jl:56
┌ Warning: TypeAnalysisDepthLimit
│   store {} addrspace(10)* %27, {} addrspace(10)** %.fca.0.0.1.gep, align 8, !dbg !105, !noalias !20
│ {[]:Pointer, [0]:Pointer, [0,0]:Float@double, [0,8]:Float@double, [0,16]:Float@double, [0,24]:Float@double, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [0,40]:Integer, [0,41]:Integer, [0,42]:Integer, [0,43]:Integer, [0,44]:Integer, [0,45]:Integer, [0,46]:Integer, [0,47]:Integer, [0,48]:Integer, [0,49]:Integer, [0,56]:Integer, [0,57]:Integer, [0,58]:Integer, [0,59]:Integer, [0,60]:Integer, [0,61]:Integer, [0,62]:Integer, [0,63]:Integer, [0,64]:Integer, [0,65]:Integer, [0,66]:Integer, [0,67]:Integer, [0,68]:Integer, [0,69]:Integer, [0,70]:Integer, [0,71]:Integer, [0,72]:Integer, [0,80]:Integer, [0,81]:Integer, [0,82]:Integer, [0,83]:Integer, [0,84]:Integer, [0,85]:Integer, [0,86]:Integer, [0,87]:Integer, [0,88]:Pointer, [0,88,0]:Pointer, [0,88,0,0]:Float@double, [0,88,8]:Integer, [0,88,9]:Integer, [0,88,10]:Integer, [0,88,11]:Integer, [0,88,12]:Integer, [0,88,13]:Integer, [0,88,14]:Integer, [0,88,15]:Integer, [0,88,16]:Integer, [0,88,17]:Integer, [0,88,18]:Integer, [0,88,19]:Integer, [0,88,20]:Integer, [0,88,21]:Integer, [0,88,22]:Integer, [0,88,23]:Integer, [0,88,24]:Integer, [0,88,25]:Integer, [0,88,26]:Integer, [0,88,27]:Integer, [0,88,28]:Integer, [0,88,29]:Integer, [0,88,30]:Integer, [0,88,31]:Integer, [0,88,32]:Integer, [0,88,33]:Integer, [0,88,34]:Integer, [0,88,35]:Integer, [0,88,36]:Integer, [0,88,37]:Integer, [0,88,38]:Integer, [0,88,39]:Integer, [0,96]:Pointer, [0,96,0]:Pointer, [0,96,0,0]:Pointer, [0,96,0,0,0]:Pointer, [0,96,0,0,0,0]:Integer, [0,96,0,0,8]:Integer, [0,96,0,0,9]:Integer, [0,96,0,0,10]:Integer, [0,96,0,0,11]:Integer, [0,96,0,0,12]:Integer, [0,96,0,0,13]:Integer, [0,96,0,0,14]:Integer, [0,96,0,0,15]:Integer, [0,96,0,0,16]:Integer, [0,96,0,0,17]:Integer, [0,96,0,0,18]:Integer, [0,96,0,0,19]:Integer, [0,96,0,0,20]:Integer, [0,96,0,0,21]:Integer, [0,96,0,0,22]:Integer, [0,96,0,0,23]:Integer, [0,96,0,0,24]:Integer, [0,96,0,0,25]:Integer, [0,96,0,0,26]:Integer, [0,96,0,0,27]:Integer, [0,96,0,0,28]:Integer, [0,96,0,0,29]:Integer, [0,96,0,0,30]:Integer, [0,96,0,0,31]:Integer, [0,96,0,0,32]:Integer, [0,96,0,0,33]:Integer, [0,96,0,0,34]:Integer, [0,96,0,0,35]:Integer, [0,96,0,0,36]:Integer, [0,96,0,0,37]:Integer, [0,96,0,0,38]:Integer, [0,96,0,0,39]:Integer, [0,96,8]:Integer, [0,96,9]:Integer, [0,96,10]:Integer, [0,96,11]:Integer, [0,96,12]:Integer, [0,96,13]:Integer, [0,96,14]:Integer, [0,96,15]:Integer, [0,96,16]:Integer, [0,96,17]:Integer, [0,96,18]:Integer, [0,96,19]:Integer, [0,96,20]:Integer, [0,96,21]:Integer, [0,96,22]:Integer, [0,96,23]:Integer, [0,96,24]:Integer, [0,96,25]:Integer, [0,96,26]:Integer, [0,96,27]:Integer, [0,96,28]:Integer, [0,96,29]:Integer, [0,96,30]:Integer, [0,96,31]:Integer, [0,96,32]:Integer, [0,96,33]:Integer, [0,96,34]:Integer, [0,96,35]:Integer, [0,96,36]:Integer, [0,96,37]:Integer, [0,96,38]:Integer, [0,96,39]:Integer, [0,104]:Pointer, [0,104,0]:Pointer, [0,104,0,0]:Integer, [0,104,8]:Integer, [0,104,9]:Integer, [0,104,10]:Integer, [0,104,11]:Integer, [0,104,12]:Integer, [0,104,13]:Integer, [0,104,14]:Integer, [0,104,15]:Integer, [0,104,16]:Integer, [0,104,17]:Integer, [0,104,18]:Integer, [0,104,19]:Integer, [0,104,20]:Integer, [0,104,21]:Integer, [0,104,22]:Integer, [0,104,23]:Integer, [0,104,24]:Integer, [0,104,25]:Integer, [0,104,26]:Integer, [0,104,27]:Integer, [0,104,28]:Integer, [0,104,29]:Integer, [0,104,30]:Integer, [0,104,31]:Integer, [0,104,32]:Integer, [0,104,33]:Integer, [0,104,34]:Integer, [0,104,35]:Integer, [0,104,36]:Integer, [0,104,37]:Integer, [0,104,38]:Integer, [0,104,39]:Integer, [0,112]:Pointer, [0,112,0]:Pointer, [0,112,0,0]:Pointer, [0,112,8]:Integer, [0,112,9]:Integer, [0,112,10]:Integer, [0,112,11]:Integer, [0,112,12]:Integer, [0,112,13]:Integer, [0,112,14]:Integer, [0,112,15]:Integer, [0,112,16]:Integer, [0,112,17]:Integer, [0,112,18]:Integer, [0,112,19]:Integer, [0,112,20]:Integer, [0,112,21]:Integer, [0,112,22]:Integer, [0,112,23]:Integer, [0,112,24]:Integer, [0,112,25]:Integer, [0,112,26]:Integer, [0,112,27]:Integer, [0,112,28]:Integer, [0,112,29]:Integer, [0,112,30]:Integer, [0,112,31]:Integer, [0,112,32]:Integer, [0,112,33]:Integer, [0,112,34]:Integer, [0,112,35]:Integer, [0,112,36]:Integer, [0,112,37]:Integer, [0,112,38]:Integer, [0,112,39]:Integer, [0,120]:Pointer, [0,120,0]:Pointer, [0,120,0,0]:Pointer, [0,120,0,0,0]:Pointer, [0,120,0,0,0,0]:Integer, [0,120,0,0,8]:Integer, [0,120,0,0,9]:Integer, [0,120,0,0,10]:Integer, [0,120,0,0,11]:Integer, [0,120,0,0,12]:Integer, [0,120,0,0,13]:Integer, [0,120,0,0,14]:Integer, [0,120,0,0,15]:Integer, [0,120,0,0,16]:Integer, [0,120,0,0,17]:Integer, [0,120,0,0,18]:Integer, [0,120,0,0,19]:Integer, [0,120,0,0,20]:Integer, [0,120,0,0,21]:Integer, [0,120,0,0,22]:Integer, [0,120,0,0,23]:Integer, [0,120,0,0,24]:Integer, [0,120,0,0,25]:Integer, [0,120,0,0,26]:Integer, [0,120,0,0,27]:Integer, [0,120,0,0,28]:Integer, [0,120,0,0,29]:Integer, [0,120,0,0,30]:Integer, [0,120,0,0,31]:Integer, [0,120,0,0,32]:Integer, [0,120,0,0,33]:Integer, [0,120,0,0,34]:Integer, [0,120,0,0,35]:Integer, [0,120,0,0,36]:Integer, [0,120,0,0,37]:Integer, [0,120,0,0,38]:Integer, [0,120,0,0,39]:Integer, [0,120,8]:Integer, [0,120,9]:Integer, [0,120,10]:Integer, [0,120,11]:Integer, [0,120,12]:Integer, [0,120,13]:Integer, [0,120,14]:Integer, [0,120,15]:Integer, [0,120,16]:Integer, [0,120,17]:Integer, [0,120,18]:Integer, [0,120,19]:Integer, [0,120,20]:Integer, [0,120,21]:Integer, [0,120,22]:Integer, [0,120,23]:Integer, [0,120,24]:Integer, [0,120,25]:Integer, [0,120,26]:Integer, [0,120,27]:Integer, [0,120,28]:Integer, [0,120,29]:Integer, [0,120,30]:Integer, [0,120,31]:Integer, [0,120,32]:Integer, [0,120,33]:Integer, [0,120,34]:Integer, [0,120,35]:Integer, [0,120,36]:Integer, [0,120,37]:Integer, [0,120,38]:Integer, [0,120,39]:Integer, [0,128]:Pointer, [0,128,0]:Pointer, [0,128,0,0]:Pointer, [0,128,0,0,0]:Pointer, [0,128,0,0,0,0]:Integer, [0,128,0,0,8]:Integer, [0,128,0,0,9]:Integer, [0,128,0,0,10]:Integer, [0,128,0,0,11]:Integer, [0,128,0,0,12]:Integer, [0,128,0,0,13]:Integer, [0,128,0,0,14]:Integer, [0,128,0,0,15]:Integer, [0,128,0,0,16]:Integer, [0,128,0,0,17]:Integer, [0,128,0,0,18]:Integer, [0,128,0,0,19]:Integer, [0,128,0,0,20]:Integer, [0,128,0,0,21]:Integer, [0,128,0,0,22]:Integer, [0,128,0,0,23]:Integer, [0,128,0,0,24]:Integer, [0,128,0,0,25]:Integer, [0,128,0,0,26]:Integer, [0,128,0,0,27]:Integer, [0,128,0,0,28]:Integer, [0,128,0,0,29]:Integer, [0,128,0,0,30]:Integer, [0,128,0,0,31]:Integer, [0,128,0,0,32]:Integer, [0,128,0,0,33]:Integer, [0,128,0,0,34]:Integer, [0,128,0,0,35]:Integer, [0,128,0,0,36]:Integer, [0,128,0,0,37]:Integer, [0,128,0,0,38]:Integer, [0,128,0,0,39]:Integer, [0,128,8]:Integer, [0,128,9]:Integer, [0,128,10]:Integer, [0,128,11]:Integer, [0,128,12]:Integer, [0,128,13]:Integer, [0,128,14]:Integer, [0,128,15]:Integer, [0,128,16]:Integer, [0,128,17]:Integer, [0,128,18]:Integer, [0,128,19]:Integer, [0,128,20]:Integer, [0,128,21]:Integer, [0,128,22]:Integer, [0,128,23]:Integer, [0,128,24]:Integer, [0,128,25]:Integer, [0,128,26]:Integer, [0,128,27]:Integer, [0,128,28]:Integer, [0,128,29]:Integer, [0,128,30]:Integer, [0,128,31]:Integer, [0,128,32]:Integer, [0,128,33]:Integer, [0,128,34]:Integer, [0,128,35]:Integer, [0,128,36]:Integer, [0,128,37]:Integer, [0,128,38]:Integer, [0,128,39]:Integer, [0,136]:Pointer, [0,136,0]:Pointer, [0,136,0,0]:Pointer, [0,136,8]:Integer, [0,136,9]:Integer, [0,136,10]:Integer, [0,136,11]:Integer, [0,136,12]:Integer, [0,136,13]:Integer, [0,136,14]:Integer, [0,136,15]:Integer, [0,136,16]:Integer, [0,136,17]:Integer, [0,136,18]:Integer, [0,136,19]:Integer, [0,136,20]:Integer, [0,136,21]:Integer, [0,136,22]:Integer, [0,136,23]:Integer, [0,136,24]:Integer, [0,136,25]:Integer, [0,136,26]:Integer, [0,136,27]:Integer, [0,136,28]:Integer, [0,136,29]:Integer, [0,136,30]:Integer, [0,136,31]:Integer, [0,136,32]:Integer, [0,136,33]:Integer, [0,136,34]:Integer, [0,136,35]:Integer, [0,136,36]:Integer, [0,136,37]:Integer, [0,136,38]:Integer, [0,136,39]:Integer, [0,144]:Float@double, [0,152]:Float@double, [0,160]:Float@double, [0,168]:Float@double, [0,176]:Integer, [0,177]:Integer, [0,178]:Integer, [0,179]:Integer, [0,180]:Integer, [0,181]:Integer, [0,182]:Integer, [0,183]:Integer, [0,184]:Integer, [0,185]:Integer, [0,186]:Integer, [0,187]:Integer, [0,188]:Integer, [0,189]:Integer, [0,190]:Integer, [0,191]:Integer, [0,192]:Integer, [0,193]:Integer, [0,200]:Integer, [0,201]:Integer, [0,202]:Integer, [0,203]:Integer, [0,204]:Integer, [0,205]:Integer, [0,206]:Integer, [0,207]:Integer, [0,208]:Integer, [0,209]:Integer, [0,210]:Integer, [0,211]:Integer, [0,212]:Integer, [0,213]:Integer, [0,214]:Integer, [0,215]:Integer, [0,216]:Integer, [0,224]:Integer, [0,225]:Integer, [0,226]:Integer, [0,227]:Integer, [0,228]:Integer, [0,229]:Integer, [0,230]:Integer, [0,231]:Integer, [0,232]:Integer, [0,233]:Integer, [0,234]:Integer, [0,235]:Integer, [0,236]:Integer, [0,237]:Integer, [0,238]:Integer, [0,239]:Integer}
│ 
│ Stacktrace:
│  [1] AffineFEOperator
│    @ ~/.julia/packages/Gridap/971dU/src/FESpaces/AffineFEOperators.jl:47
│  [2] AffineFEOperator
│    @ ~/.julia/packages/Gridap/971dU/src/FESpaces/AffineFEOperators.jl:51
│  [3] displacements
│    @ ~/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:42
│  [4] displacements
│    @ ~/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:0
└ @ Enzyme.Compiler ~/.julia/packages/GPUCompiler/cy24l/src/utils.jl:56
ERROR: Enzyme execution failed.
Mismatched activity for:   store {} addrspace(10)* %.fca.0.load, {} addrspace(10)** %.fca.0.1.0.gep, align 8, !dbg !105, !noalias !20 const val:   %.fca.0.load = load {} addrspace(10)*, {} addrspace(10)** %.fca.3.0.gep, align 8, !dbg !65, !alias.scope !66, !noalias !67
Type tree: {}
You may be using a constant variable as temporary storage for active memory (https://enzyme.mit.edu/julia/stable/#Activity-of-temporary-storage). If not, please open an issue, and either rewrite this variable to not be conditionally active or use Enzyme.API.runtimeActivity!(true) as a workaround for now

Stacktrace:
 [1] AffineFEOperator
   @ ~/.julia/packages/Gridap/971dU/src/FESpaces/AffineFEOperators.jl:47
 [2] AffineFEOperator
   @ ~/.julia/packages/Gridap/971dU/src/FESpaces/AffineFEOperators.jl:51
 [3] displacements
   @ ~/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:42
 [4] displacements
   @ ~/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:0

Stacktrace:
 [1] throwerr(cstr::Cstring)
   @ Enzyme.Compiler ~/.julia/packages/Enzyme/gS4lp/src/compiler.jl:2924

@wsmoses
Copy link
Member

wsmoses commented Jul 7, 2023

It was released, but recently so you may need to run an update. (e.g. ] up).

Also please try the latest commit of Enzyme (it includes the GC fixes).

Locally I see it nolonger segfault, but throw an error about a type instability in your code:

# see the error message thrown above
Enzyme.API.runtimeActivity!(true)
# to not print those warnings
Enzyme.API.typeWarning!(false)
julia> Enzyme.autodiff(Forward, g, Duplicated(x, dx))


ERROR: Enzyme execution failed.
Enzyme: unhandled augmented forward for jl_f__apply_iterate
Stacktrace:
 [1] return_value
   @ ~/.julia/packages/Gridap/hKSot/src/Arrays/PosNegReindex.jl:21
 [2] return_type
   @ ~/.julia/packages/Gridap/hKSot/src/Arrays/Maps.jl:62
 [3] return_value
   @ ~/.julia/packages/Gridap/hKSot/src/Arrays/Maps.jl:190

Stacktrace:
 [1] throwerr(cstr::Cstring)
   @ Enzyme.Compiler ~/git/Enzyme.jl/src/compiler.jl:2834
 [2] macro expansion
   @ ~/git/Enzyme.jl/src/compiler.jl:9463 [inlined]
 [3] enzyme_call
   @ ~/git/Enzyme.jl/src/compiler.jl:9140 [inlined]
 [4] ForwardModeThunk
   @ ~/git/Enzyme.jl/src/compiler.jl:9106 [inlined]
 [5] runtime_generic_fwd(activity::Val{(false, true, true)}, width::Val{1}, RT::Val{NamedTuple{(Symbol("1"), Symbol("2")), Tuple{Any, Any}}}, f::typeof(Gridap.Arrays.lazy_map), df::Nothing, primal_1::Gridap.Arrays.Broadcasting{Gridap.Arrays.PosNegReindex{Vector{Float64}, Vector{Float64}}}, shadow_1_1::Gridap.Arrays.Broadcasting{Gridap.Arrays.PosNegReindex{Vector{Float64}, Vector{Float64}}}, primal_2::Gridap.Arrays.Table{Int32, Vector{Int32}, Vector{Int32}}, shadow_2_1::Gridap.Arrays.Table{Int32, Vector{Int32}, Vector{Int32}})
   @ Enzyme.Compiler ~/git/Enzyme.jl/src/compiler.jl:1223
 [6] macro expansion
   @ ~/git/Enzyme.jl/src/compiler.jl:9463 [inlined]
 [7] enzyme_call
   @ ~/git/Enzyme.jl/src/compiler.jl:9140 [inlined]
 [8] ForwardModeThunk
   @ ~/git/Enzyme.jl/src/compiler.jl:9106 [inlined]
 [9] runtime_generic_fwd(activity::Val{(false, true, true, false)}, width::Val{1}, RT::Val{NamedTuple{(Symbol("1"), Symbol("2")), Tuple{Any, Any}}}, f::Type{Gridap.FESpaces.FEFunction}, df::Nothing, primal_1::Gridap.FESpaces.TrialFESpace{Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{Gridap.TensorValues.VectorValue{2, Int32}}}}, shadow_1_1::Gridap.FESpaces.TrialFESpace{Gridap.FESpaces.UnconstrainedFESpace{Vector{Float64}, Gridap.FESpaces.NodeToDofGlue{Gridap.TensorValues.VectorValue{2, Int32}}}}, primal_2::Vector{Float64}, shadow_2_1::Vector{Float64}, primal_3::Vector{Float64}, shadow_3_1::Nothing)
   @ Enzyme.Compiler ~/git/Enzyme.jl/src/compiler.jl:1223

@wsmoses
Copy link
Member

wsmoses commented Aug 9, 2023

Since I still cannot reproduce an error, closing. Please reopen if it still has an unexpected error for you.

Note that per the first error message you see:

Mismatched activity for:   store {} addrspace(10)* %.fca.0.load, {} addrspace(10)** %.fca.0.1.0.gep, align 8, !dbg !105, !noalias !20 const val:   %.fca.0.load = load {} addrspace(10)*, {} addrspace(10)** %.fca.3.0.gep, align 8, !dbg !65, !alias.scope !66, !noalias !67
Type tree: {}
You may be using a constant variable as temporary storage for active memory (https://enzyme.mit.edu/julia/stable/#Activity-of-temporary-storage). If not, please open an issue, and either rewrite this variable to not be conditionally active or use Enzyme.API.runtimeActivity!(true) as a workaround for now

Stacktrace:
 [1] AffineFEOperator
   @ ~/.julia/packages/Gridap/971dU/src/FESpaces/AffineFEOperators.jl:47
 [2] AffineFEOperator
   @ ~/.julia/packages/Gridap/971dU/src/FESpaces/AffineFEOperators.jl:51
 [3] displacements
   @ ~/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:42
 [4] displacements
   @ ~/.julia/packages/TopOptGridap/uKKM6/src/TopOptGridap.jl:0

you have a part of the code that mixes constant and active data in the same struct (the workaround suggested indeed gets past it).

And finally as mentioned just above, there's a type unstable part of your code that is not yet implemented and noted here: #599.

@wsmoses wsmoses closed this as completed Aug 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants