get,particle,flags,buffergetget (6.21e-01)
is (1.16e-01)
system (7.56e-02)
%UNK% (1.85e-02)
pop (1.03e-02)
remove (9.04e-03)
touch (8.02e-03)
update (5.84e-03)
to (5.03e-03)
key (4.67e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
particle%END% (5.86e-01)
system (5.37e-02)
%UNK% (3.38e-02)
value (1.52e-02)
array (1.22e-02)
data (9.10e-03)
up (8.09e-03)
to (7.30e-03)
down (6.58e-03)
size (5.22e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
flags%END% (9.00e-01)
value (6.85e-03)
%UNK% (6.13e-03)
system (3.85e-03)
array (3.75e-03)
data (2.22e-03)
up (2.09e-03)
count (1.99e-03)
down (1.60e-03)
buffer (1.60e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
buffer%END% (9.64e-01)
value (3.22e-03)
array (9.76e-04)
20 (9.36e-04)
%UNK% (9.17e-04)
only (7.38e-04)
count (6.37e-04)
system (6.09e-04)
file (4.95e-04)
up (4.76e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
%END%%END% (9.59e-01)
value (2.97e-03)
20 (9.63e-04)
array (7.23e-04)
only (7.15e-04)
%UNK% (5.82e-04)
count (5.28e-04)
system (4.43e-04)
file (4.08e-04)
return (4.04e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
get,particle,position,buffergetget (6.21e-01)
is (1.16e-01)
system (7.56e-02)
%UNK% (1.85e-02)
pop (1.03e-02)
remove (9.04e-03)
touch (8.02e-03)
update (5.84e-03)
to (5.03e-03)
key (4.67e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
particle%END% (5.86e-01)
system (5.37e-02)
%UNK% (3.38e-02)
value (1.52e-02)
array (1.22e-02)
data (9.10e-03)
up (8.09e-03)
to (7.30e-03)
down (6.58e-03)
size (5.22e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
position%END% (9.00e-01)
value (6.85e-03)
%UNK% (6.13e-03)
system (3.85e-03)
array (3.75e-03)
data (2.22e-03)
up (2.09e-03)
count (1.99e-03)
down (1.60e-03)
buffer (1.60e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
buffer%END% (9.64e-01)
value (3.22e-03)
array (9.76e-04)
20 (9.36e-04)
%UNK% (9.17e-04)
only (7.38e-04)
count (6.37e-04)
system (6.09e-04)
file (4.95e-04)
up (4.76e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
%END%%END% (9.44e-01)
value (3.09e-03)
20 (1.01e-03)
return (8.31e-04)
only (7.74e-04)
array (7.10e-04)
%UNK% (5.42e-04)
count (5.36e-04)
system (5.21e-04)
m (4.41e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
get,particle,velocity,buffergetget (6.21e-01)
is (1.16e-01)
system (7.56e-02)
%UNK% (1.85e-02)
pop (1.03e-02)
remove (9.04e-03)
touch (8.02e-03)
update (5.84e-03)
to (5.03e-03)
key (4.67e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
particle%END% (5.86e-01)
system (5.37e-02)
%UNK% (3.38e-02)
value (1.52e-02)
array (1.22e-02)
data (9.10e-03)
up (8.09e-03)
to (7.30e-03)
down (6.58e-03)
size (5.22e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
velocity%END% (9.00e-01)
value (6.85e-03)
%UNK% (6.13e-03)
system (3.85e-03)
array (3.75e-03)
data (2.22e-03)
up (2.09e-03)
count (1.99e-03)
down (1.60e-03)
buffer (1.60e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
buffer%END% (9.64e-01)
value (3.22e-03)
array (9.76e-04)
20 (9.36e-04)
%UNK% (9.17e-04)
only (7.38e-04)
count (6.37e-04)
system (6.09e-04)
file (4.95e-04)
up (4.76e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
%END%%END% (9.62e-01)
value (3.30e-03)
20 (1.03e-03)
only (8.21e-04)
array (8.03e-04)
%UNK% (6.13e-04)
count (5.79e-04)
file (4.36e-04)
system (4.15e-04)
buffer (4.08e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
get,particle,color,buffergetget (6.21e-01)
is (1.16e-01)
system (7.56e-02)
%UNK% (1.85e-02)
pop (1.03e-02)
remove (9.04e-03)
touch (8.02e-03)
update (5.84e-03)
to (5.03e-03)
key (4.67e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
particle%END% (5.86e-01)
system (5.37e-02)
%UNK% (3.38e-02)
value (1.52e-02)
array (1.22e-02)
data (9.10e-03)
up (8.09e-03)
to (7.30e-03)
down (6.58e-03)
size (5.22e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
color%END% (9.00e-01)
value (6.85e-03)
%UNK% (6.13e-03)
system (3.85e-03)
array (3.75e-03)
data (2.22e-03)
up (2.09e-03)
count (1.99e-03)
down (1.60e-03)
buffer (1.60e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
buffer%END% (9.64e-01)
value (3.22e-03)
array (9.76e-04)
20 (9.36e-04)
%UNK% (9.17e-04)
only (7.38e-04)
count (6.37e-04)
system (6.09e-04)
file (4.95e-04)
up (4.76e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
%END%%END% (9.50e-01)
value (3.04e-03)
20 (9.89e-04)
only (7.50e-04)
array (7.10e-04)
return (6.41e-04)
%UNK% (5.51e-04)
count (5.30e-04)
system (4.88e-04)
particle (4.06e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
get,particle,group,buffergetget (6.21e-01)
is (1.16e-01)
system (7.56e-02)
%UNK% (1.85e-02)
pop (1.03e-02)
remove (9.04e-03)
touch (8.02e-03)
update (5.84e-03)
to (5.03e-03)
key (4.67e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
particle%END% (5.86e-01)
system (5.37e-02)
%UNK% (3.38e-02)
value (1.52e-02)
array (1.22e-02)
data (9.10e-03)
up (8.09e-03)
to (7.30e-03)
down (6.58e-03)
size (5.22e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
group%END% (9.00e-01)
value (6.85e-03)
%UNK% (6.13e-03)
system (3.85e-03)
array (3.75e-03)
data (2.22e-03)
up (2.09e-03)
count (1.99e-03)
down (1.60e-03)
buffer (1.60e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
buffer%END% (9.64e-01)
value (3.22e-03)
array (9.76e-04)
20 (9.36e-04)
%UNK% (9.17e-04)
only (7.38e-04)
count (6.37e-04)
system (6.09e-04)
file (4.95e-04)
up (4.76e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
%END%%END% (9.43e-01)
value (3.10e-03)
20 (1.01e-03)
return (8.67e-04)
only (7.76e-04)
array (7.14e-04)
%UNK% (5.49e-04)
count (5.39e-04)
system (5.34e-04)
m (4.57e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
get,particle,user,data,buffergetget (6.21e-01)
is (1.16e-01)
system (7.56e-02)
%UNK% (1.85e-02)
pop (1.03e-02)
remove (9.04e-03)
touch (8.02e-03)
update (5.84e-03)
to (5.03e-03)
key (4.67e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
particle%END% (5.86e-01)
system (5.37e-02)
%UNK% (3.38e-02)
value (1.52e-02)
array (1.22e-02)
data (9.10e-03)
up (8.09e-03)
to (7.30e-03)
down (6.58e-03)
size (5.22e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
user%END% (9.00e-01)
value (6.85e-03)
%UNK% (6.13e-03)
system (3.85e-03)
array (3.75e-03)
data (2.22e-03)
up (2.09e-03)
count (1.99e-03)
down (1.60e-03)
buffer (1.60e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
data%END% (9.64e-01)
value (3.22e-03)
array (9.76e-04)
20 (9.36e-04)
%UNK% (9.17e-04)
only (7.38e-04)
count (6.37e-04)
system (6.09e-04)
file (4.95e-04)
up (4.76e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
buffer%END% (9.54e-01)
value (3.33e-03)
20 (1.05e-03)
only (8.43e-04)
array (7.82e-04)
%UNK% (5.87e-04)
count (5.78e-04)
return (5.08e-04)
system (4.63e-04)
file (4.27e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
%END%%END% (9.42e-01)
value (3.09e-03)
20 (1.00e-03)
return (8.75e-04)
only (7.73e-04)
array (7.12e-04)
%UNK% (5.47e-04)
count (5.37e-04)
system (5.35e-04)
m (4.61e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
set,particle,flags,bufferset%UNK% (1.06e-01)
get (8.35e-02)
system (7.12e-02)
wrap (5.18e-02)
to (4.49e-02)
buffer (4.48e-02)
%END% (3.01e-02)
resize (2.73e-02)
allocate (2.03e-02)
set (1.98e-02)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
particle%END% (9.32e-01)
buffer (1.66e-02)
array (5.62e-03)
all (4.92e-03)
%UNK% (2.37e-03)
particle (2.03e-03)
system (1.89e-03)
to (1.47e-03)
value (1.45e-03)
capacity (1.15e-03)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
flags%END% (9.81e-01)
buffer (2.85e-03)
all (1.61e-03)
array (1.31e-03)
value (6.93e-04)
%UNK% (5.24e-04)
system (5.19e-04)
capacity (2.98e-04)
particle (2.65e-04)
only (2.60e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
buffer%END% (9.87e-01)
buffer (2.72e-03)
value (5.90e-04)
all (5.37e-04)
array (5.20e-04)
20 (2.27e-04)
capacity (2.16e-04)
only (2.12e-04)
%UNK% (1.75e-04)
system (1.73e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
%END%%END% (9.79e-01)
buffer (6.79e-03)
value (6.25e-04)
capacity (5.19e-04)
array (4.12e-04)
all (3.66e-04)
system (2.83e-04)
20 (2.67e-04)
only (2.33e-04)
particle (1.96e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
set,particle,position,bufferset%UNK% (1.06e-01)
get (8.35e-02)
system (7.12e-02)
wrap (5.18e-02)
to (4.49e-02)
buffer (4.48e-02)
%END% (3.01e-02)
resize (2.73e-02)
allocate (2.03e-02)
set (1.98e-02)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
particle%END% (9.32e-01)
buffer (1.66e-02)
array (5.62e-03)
all (4.92e-03)
%UNK% (2.37e-03)
particle (2.03e-03)
system (1.89e-03)
to (1.47e-03)
value (1.45e-03)
capacity (1.15e-03)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
position%END% (9.81e-01)
buffer (2.85e-03)
all (1.61e-03)
array (1.31e-03)
value (6.93e-04)
%UNK% (5.24e-04)
system (5.19e-04)
capacity (2.98e-04)
particle (2.65e-04)
only (2.60e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
buffer%END% (9.87e-01)
buffer (2.72e-03)
value (5.90e-04)
all (5.37e-04)
array (5.20e-04)
20 (2.27e-04)
capacity (2.16e-04)
only (2.12e-04)
%UNK% (1.75e-04)
system (1.73e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
%END%%END% (9.68e-01)
buffer (1.14e-02)
capacity (9.15e-04)
value (6.66e-04)
system (4.73e-04)
array (4.12e-04)
all (3.49e-04)
particle (3.35e-04)
m (3.34e-04)
20 (2.85e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
set,particle,velocity,bufferset%UNK% (1.06e-01)
get (8.35e-02)
system (7.12e-02)
wrap (5.18e-02)
to (4.49e-02)
buffer (4.48e-02)
%END% (3.01e-02)
resize (2.73e-02)
allocate (2.03e-02)
set (1.98e-02)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
particle%END% (9.32e-01)
buffer (1.66e-02)
array (5.62e-03)
all (4.92e-03)
%UNK% (2.37e-03)
particle (2.03e-03)
system (1.89e-03)
to (1.47e-03)
value (1.45e-03)
capacity (1.15e-03)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
velocity%END% (9.81e-01)
buffer (2.85e-03)
all (1.61e-03)
array (1.31e-03)
value (6.93e-04)
%UNK% (5.24e-04)
system (5.19e-04)
capacity (2.98e-04)
particle (2.65e-04)
only (2.60e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
buffer%END% (9.87e-01)
buffer (2.72e-03)
value (5.90e-04)
all (5.37e-04)
array (5.20e-04)
20 (2.27e-04)
capacity (2.16e-04)
only (2.12e-04)
%UNK% (1.75e-04)
system (1.73e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
%END%%END% (9.81e-01)
buffer (5.73e-03)
value (6.77e-04)
array (4.55e-04)
capacity (3.96e-04)
all (3.89e-04)
20 (2.83e-04)
only (2.60e-04)
system (2.48e-04)
particle (1.54e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
set,particle,color,bufferset%UNK% (1.06e-01)
get (8.35e-02)
system (7.12e-02)
wrap (5.18e-02)
to (4.49e-02)
buffer (4.48e-02)
%END% (3.01e-02)
resize (2.73e-02)
allocate (2.03e-02)
set (1.98e-02)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
particle%END% (9.32e-01)
buffer (1.66e-02)
array (5.62e-03)
all (4.92e-03)
%UNK% (2.37e-03)
particle (2.03e-03)
system (1.89e-03)
to (1.47e-03)
value (1.45e-03)
capacity (1.15e-03)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
color%END% (9.81e-01)
buffer (2.85e-03)
all (1.61e-03)
array (1.31e-03)
value (6.93e-04)
%UNK% (5.24e-04)
system (5.19e-04)
capacity (2.98e-04)
particle (2.65e-04)
only (2.60e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
buffer%END% (9.87e-01)
buffer (2.72e-03)
value (5.90e-04)
all (5.37e-04)
array (5.20e-04)
20 (2.27e-04)
capacity (2.16e-04)
only (2.12e-04)
%UNK% (1.75e-04)
system (1.73e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
%END%%END% (9.73e-01)
buffer (9.46e-03)
capacity (7.43e-04)
value (6.50e-04)
array (4.10e-04)
system (3.89e-04)
all (3.53e-04)
20 (2.78e-04)
particle (2.74e-04)
m (2.64e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
set,particle,user,data,bufferset%UNK% (1.06e-01)
get (8.35e-02)
system (7.12e-02)
wrap (5.18e-02)
to (4.49e-02)
buffer (4.48e-02)
%END% (3.01e-02)
resize (2.73e-02)
allocate (2.03e-02)
set (1.98e-02)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
particle%END% (9.32e-01)
buffer (1.66e-02)
array (5.62e-03)
all (4.92e-03)
%UNK% (2.37e-03)
particle (2.03e-03)
system (1.89e-03)
to (1.47e-03)
value (1.45e-03)
capacity (1.15e-03)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
user%END% (9.81e-01)
buffer (2.85e-03)
all (1.61e-03)
array (1.31e-03)
value (6.93e-04)
%UNK% (5.24e-04)
system (5.19e-04)
capacity (2.98e-04)
particle (2.65e-04)
only (2.60e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
data%END% (9.87e-01)
buffer (2.72e-03)
value (5.90e-04)
all (5.37e-04)
array (5.20e-04)
20 (2.27e-04)
capacity (2.16e-04)
only (2.12e-04)
%UNK% (1.75e-04)
system (1.73e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
buffer%END% (9.75e-01)
buffer (8.46e-03)
value (6.95e-04)
capacity (6.23e-04)
array (4.49e-04)
all (3.76e-04)
system (3.62e-04)
20 (2.92e-04)
only (2.66e-04)
particle (2.36e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
%END%%END% (9.67e-01)
buffer (1.17e-02)
capacity (9.53e-04)
value (6.65e-04)
system (4.90e-04)
array (4.13e-04)
m (3.50e-04)
all (3.50e-04)
particle (3.48e-04)
20 (2.84e-04)
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
m
particle
system
.
%SELF%
(
buffer
,
capacity
)
;
}
<SENTENCE_END/>
get,particle,contactsgetget (8.56e-01)
is (2.06e-02)
m (1.67e-02)
%UNK% (1.43e-02)
system (8.39e-03)
touch (7.11e-03)
statistics (4.58e-03)
%END% (3.85e-03)
data (3.52e-03)
particle (3.33e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
buffer
;
}
<SENTENCE_END/>
particlecontact (3.33e-01)
%END% (2.21e-01)
get (6.72e-02)
%UNK% (4.25e-02)
buffer (4.16e-02)
particle (1.58e-02)
down (1.40e-02)
m (8.83e-03)
up (8.13e-03)
touch (6.84e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
buffer
;
}
<SENTENCE_END/>
contacts%END% (7.10e-01)
buffer (1.44e-01)
contact (5.97e-02)
system (1.15e-02)
particle (4.92e-03)
%UNK% (4.32e-03)
value (4.27e-03)
m (4.00e-03)
data (1.75e-03)
count (1.67e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
buffer
;
}
<SENTENCE_END/>
%END%%END% (9.44e-01)
buffer (2.27e-02)
value (4.55e-03)
contact (2.93e-03)
20 (1.96e-03)
only (1.49e-03)
count (8.64e-04)
array (7.21e-04)
%UNK% (6.73e-04)
file (5.06e-04)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
buffer
;
}
<SENTENCE_END/>
get,particle,contact,countgetget (8.40e-01)
is (2.35e-02)
m (2.06e-02)
%UNK% (1.47e-02)
touch (8.26e-03)
system (7.27e-03)
statistics (6.13e-03)
data (4.11e-03)
pop (3.68e-03)
report (3.64e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
particlecontact (2.56e-01)
%END% (1.94e-01)
count (5.59e-02)
%UNK% (5.27e-02)
get (4.62e-02)
particles (2.25e-02)
particle (2.10e-02)
down (1.53e-02)
up (1.32e-02)
touch (1.21e-02)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
contact%END% (7.18e-01)
count (1.41e-01)
contact (4.31e-02)
system (1.34e-02)
%UNK% (5.99e-03)
particle (5.19e-03)
value (4.37e-03)
m (3.19e-03)
data (2.52e-03)
particles (2.44e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
count%END% (9.43e-01)
count (2.46e-02)
value (4.23e-03)
contact (2.48e-03)
20 (1.70e-03)
only (1.33e-03)
%UNK% (7.18e-04)
system (6.90e-04)
particles (6.85e-04)
array (6.83e-04)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
%END%%END% (9.40e-01)
count (2.46e-02)
value (4.55e-03)
contact (2.97e-03)
20 (1.84e-03)
only (1.48e-03)
m (6.64e-04)
system (6.42e-04)
array (5.75e-04)
particles (5.32e-04)
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
contact
count
;
}
<SENTENCE_END/>
get,particle,body,contactsgetget (7.95e-01)
is (3.68e-02)
%UNK% (3.57e-02)
%END% (1.00e-02)
m (9.63e-03)
touch (5.64e-03)
data (3.39e-03)
system (3.14e-03)
statistics (3.11e-03)
key (2.98e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
particle%END% (3.05e-01)
contact (2.42e-01)
buffer (7.82e-02)
body (6.46e-02)
%UNK% (4.41e-02)
get (4.03e-02)
particle (8.30e-03)
system (6.62e-03)
down (6.36e-03)
array (6.20e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
body%END% (7.89e-01)
buffer (7.13e-02)
contact (5.62e-02)
body (8.19e-03)
system (8.02e-03)
%UNK% (5.96e-03)
value (3.56e-03)
array (2.05e-03)
particle (1.82e-03)
data (1.76e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
contacts%END% (9.49e-01)
buffer (1.90e-02)
contact (7.29e-03)
value (2.88e-03)
20 (1.29e-03)
only (9.84e-04)
%UNK% (8.71e-04)
count (6.87e-04)
body (6.78e-04)
array (6.69e-04)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
%END%%END% (9.46e-01)
buffer (2.08e-02)
contact (6.39e-03)
value (3.14e-03)
20 (1.41e-03)
only (1.09e-03)
body (8.36e-04)
m (6.99e-04)
return (6.99e-04)
count (6.02e-04)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
buffer
;
}
<SENTENCE_END/>
get,particle,body,contact,countgetget (7.92e-01)
is (4.00e-02)
%UNK% (3.30e-02)
m (1.15e-02)
%END% (8.31e-03)
touch (6.04e-03)
statistics (3.90e-03)
data (3.89e-03)
report (3.74e-03)
system (3.52e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
particle%END% (3.52e-01)
contact (1.25e-01)
count (8.11e-02)
%UNK% (6.23e-02)
body (3.34e-02)
particles (2.54e-02)
get (2.34e-02)
particle (1.14e-02)
down (8.49e-03)
up (8.38e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
body%END% (7.97e-01)
count (7.38e-02)
contact (3.78e-02)
system (8.75e-03)
%UNK% (7.88e-03)
body (5.46e-03)
value (3.40e-03)
particles (2.69e-03)
data (2.38e-03)
particle (2.16e-03)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
contact%END% (9.51e-01)
count (1.92e-02)
contact (5.95e-03)
value (2.63e-03)
20 (1.13e-03)
only (8.79e-04)
%UNK% (7.61e-04)
body (6.90e-04)
array (6.05e-04)
system (5.80e-04)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
count%END% (9.46e-01)
count (1.96e-02)
contact (5.86e-03)
value (2.86e-03)
return (1.34e-03)
20 (1.28e-03)
m (1.22e-03)
only (9.95e-04)
body (9.61e-04)
array (4.86e-04)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
%END%%END% (9.46e-01)
count (1.97e-02)
contact (5.88e-03)
value (2.85e-03)
return (1.35e-03)
20 (1.28e-03)
m (1.23e-03)
only (9.95e-04)
body (9.65e-04)
array (4.86e-04)
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
m
body
contact
count
;
}
<SENTENCE_END/>
compute,particle,collision,energycomputeget (6.21e-01)
is (1.16e-01)
system (7.56e-02)
%UNK% (1.85e-02)
pop (1.03e-02)
remove (9.04e-03)
touch (8.02e-03)
update (5.84e-03)
to (5.03e-03)
key (4.67e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
particle%END% (5.86e-01)
system (5.37e-02)
%UNK% (3.38e-02)
value (1.52e-02)
array (1.22e-02)
data (9.10e-03)
up (8.09e-03)
to (7.30e-03)
down (6.58e-03)
size (5.22e-03)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
collision%END% (9.51e-01)
value (4.63e-03)
%UNK% (1.99e-03)
array (1.85e-03)
system (1.28e-03)
count (1.10e-03)
only (1.06e-03)
20 (1.02e-03)
up (9.59e-04)
data (8.53e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
energy%END% (9.65e-01)
value (3.01e-03)
20 (9.12e-04)
array (8.74e-04)
%UNK% (7.97e-04)
only (6.90e-04)
count (5.82e-04)
system (5.47e-04)
file (4.58e-04)
up (4.26e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
%END%%END% (9.43e-01)
value (3.09e-03)
20 (1.00e-03)
return (8.73e-04)
only (7.74e-04)
array (7.08e-04)
%UNK% (5.39e-04)
count (5.34e-04)
system (5.31e-04)
m (4.58e-04)
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
m
particle
system
.
%SELF%
(
)
;
}
<SENTENCE_END/>
tree,callbacktreedestroy (4.89e-01)
fixture (2.69e-01)
report (6.09e-02)
init (5.47e-02)
create (2.74e-02)
%UNK% (8.93e-03)
build (7.12e-03)
extract (5.61e-03)
parse (5.57e-03)
render (5.31e-03)
<SENTENCE_START>
{
fixture
proxy
proxy
=
(
fixture
proxy
)
broad
phase
.
get
user
data
(
node
id
)
;
return
callback
.
report
fixture
(
proxy
.
fixture
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
fixture
proxy
proxy
=
(
fixture
proxy
)
broad
phase
.
get
user
data
(
node
id
)
;
return
callback
.
report
fixture
(
proxy
.
fixture
)
;
}
<SENTENCE_END/>
callbackfixture (7.29e-01)
user (1.37e-01)
report (3.87e-02)
proxy (2.35e-02)
%END% (2.01e-02)
destroy (1.47e-02)
node (5.64e-03)
data (5.15e-03)
id (1.62e-03)
broad (1.11e-03)
<SENTENCE_START>
{
fixture
proxy
proxy
=
(
fixture
proxy
)
broad
phase
.
get
user
data
(
node
id
)
;
return
callback
.
report
fixture
(
proxy
.
fixture
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
fixture
proxy
proxy
=
(
fixture
proxy
)
broad
phase
.
get
user
data
(
node
id
)
;
return
callback
.
report
fixture
(
proxy
.
fixture
)
;
}
<SENTENCE_END/>
%END%%END% (7.48e-01)
proxy (1.33e-01)
data (3.50e-02)
fixture (2.89e-02)
%UNK% (2.94e-03)
node (2.91e-03)
user (1.89e-03)
phase (1.35e-03)
id (1.15e-03)
report (8.09e-04)
<SENTENCE_START>
{
fixture
proxy
proxy
=
(
fixture
proxy
)
broad
phase
.
get
user
data
(
node
id
)
;
return
callback
.
report
fixture
(
proxy
.
fixture
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
fixture
proxy
proxy
=
(
fixture
proxy
)
broad
phase
.
get
user
data
(
node
id
)
;
return
callback
.
report
fixture
(
proxy
.
fixture
)
;
}
<SENTENCE_END/>
raycast,callbackraycastcreate (1.02e-01)
get (7.73e-02)
init (6.96e-02)
%UNK% (6.91e-02)
set (5.28e-02)
add (5.14e-02)
report (4.22e-02)
initialize (2.99e-02)
destroy (2.87e-02)
render (2.14e-02)
<SENTENCE_START>
{
object
user
data
=
broad
phase
.
get
user
data
(
node
id
)
;
fixture
proxy
proxy
=
(
fixture
proxy
)
user
data
;
fixture
fixture
=
proxy
.
fixture
;
int
index
=
proxy
.
child
index
;
boolean
hit
=
fixture
.
raycast
(
output
,
input
,
index
)
;
if
(
hit
)
{
float
fraction
=
output
.
fraction
;
temp
.
set
(
input
.
p
2
)
.
mul
local
(
fraction
)
;
point
.
set
(
input
.
p
1
)
.
mul
local
(
1
-
fraction
)
.
add
local
(
temp
)
;
return
callback
.
report
fixture
(
fixture
,
point
,
output
.
normal
,
fraction
)
;
}
return
input
.
max
fraction
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
object
user
data
=
broad
phase
.
get
user
data
(
node
id
)
;
fixture
proxy
proxy
=
(
fixture
proxy
)
user
data
;
fixture
fixture
=
proxy
.
fixture
;
int
index
=
proxy
.
child
index
;
boolean
hit
=
fixture
.
raycast
(
output
,
input
,
index
)
;
if
(
hit
)
{
float
fraction
=
output
.
fraction
;
temp
.
set
(
input
.
p
2
)
.
mul
local
(
fraction
)
;
point
.
set
(
input
.
p
1
)
.
mul
local
(
1
-
fraction
)
.
add
local
(
temp
)
;
return
callback
.
report
fixture
(
fixture
,
point
,
output
.
normal
,
fraction
)
;
}
return
input
.
max
fraction
;
}
<SENTENCE_END/>
callback%END% (5.64e-01)
fixture (1.87e-01)
report (2.55e-02)
proxy (2.24e-02)
user (1.45e-02)
%UNK% (1.12e-02)
hit (6.27e-03)
data (5.61e-03)
get (5.46e-03)
fraction (5.22e-03)
<SENTENCE_START>
{
object
user
data
=
broad
phase
.
get
user
data
(
node
id
)
;
fixture
proxy
proxy
=
(
fixture
proxy
)
user
data
;
fixture
fixture
=
proxy
.
fixture
;
int
index
=
proxy
.
child
index
;
boolean
hit
=
fixture
.
raycast
(
output
,
input
,
index
)
;
if
(
hit
)
{
float
fraction
=
output
.
fraction
;
temp
.
set
(
input
.
p
2
)
.
mul
local
(
fraction
)
;
point
.
set
(
input
.
p
1
)
.
mul
local
(
1
-
fraction
)
.
add
local
(
temp
)
;
return
callback
.
report
fixture
(
fixture
,
point
,
output
.
normal
,
fraction
)
;
}
return
input
.
max
fraction
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
object
user
data
=
broad
phase
.
get
user
data
(
node
id
)
;
fixture
proxy
proxy
=
(
fixture
proxy
)
user
data
;
fixture
fixture
=
proxy
.
fixture
;
int
index
=
proxy
.
child
index
;
boolean
hit
=
fixture
.
raycast
(
output
,
input
,
index
)
;
if
(
hit
)
{
float
fraction
=
output
.
fraction
;
temp
.
set
(
input
.
p
2
)
.
mul
local
(
fraction
)
;
point
.
set
(
input
.
p
1
)
.
mul
local
(
1
-
fraction
)
.
add
local
(
temp
)
;
return
callback
.
report
fixture
(
fixture
,
point
,
output
.
normal
,
fraction
)
;
}
return
input
.
max
fraction
;
}
<SENTENCE_END/>
%END%%END% (8.68e-01)
fixture (2.99e-02)
data (8.28e-03)
proxy (7.83e-03)
fraction (5.52e-03)
%UNK% (3.57e-03)
user (3.54e-03)
max (2.51e-03)
local (2.27e-03)
input (2.20e-03)
<SENTENCE_START>
{
object
user
data
=
broad
phase
.
get
user
data
(
node
id
)
;
fixture
proxy
proxy
=
(
fixture
proxy
)
user
data
;
fixture
fixture
=
proxy
.
fixture
;
int
index
=
proxy
.
child
index
;
boolean
hit
=
fixture
.
raycast
(
output
,
input
,
index
)
;
if
(
hit
)
{
float
fraction
=
output
.
fraction
;
temp
.
set
(
input
.
p
2
)
.
mul
local
(
fraction
)
;
point
.
set
(
input
.
p
1
)
.
mul
local
(
1
-
fraction
)
.
add
local
(
temp
)
;
return
callback
.
report
fixture
(
fixture
,
point
,
output
.
normal
,
fraction
)
;
}
return
input
.
max
fraction
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
object
user
data
=
broad
phase
.
get
user
data
(
node
id
)
;
fixture
proxy
proxy
=
(
fixture
proxy
)
user
data
;
fixture
fixture
=
proxy
.
fixture
;
int
index
=
proxy
.
child
index
;
boolean
hit
=
fixture
.
raycast
(
output
,
input
,
index
)
;
if
(
hit
)
{
float
fraction
=
output
.
fraction
;
temp
.
set
(
input
.
p
2
)
.
mul
local
(
fraction
)
;
point
.
set
(
input
.
p
1
)
.
mul
local
(
1
-
fraction
)
.
add
local
(
temp
)
;
return
callback
.
report
fixture
(
fixture
,
point
,
output
.
normal
,
fraction
)
;
}
return
input
.
max
fraction
;
}
<SENTENCE_END/>
beginbeginset (7.31e-01)
update (1.31e-01)
get (3.38e-02)
look (3.14e-02)
reset (1.22e-02)
apply (9.98e-03)
rotate (9.84e-03)
start (3.73e-03)
lerp (3.18e-03)
setup (2.84e-03)
<SENTENCE_START>
{
start
=
target
.
get
rotation
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
start
=
target
.
get
rotation
(
)
;
}
<SENTENCE_END/>
%END%%END% (4.60e-01)
at (1.23e-01)
rotation (5.41e-02)
look (4.90e-02)
update (4.22e-02)
target (3.16e-02)
relative (2.84e-02)
performed (2.79e-02)
rad (1.21e-02)
%UNK% (1.07e-02)
<SENTENCE_START>
{
start
=
target
.
get
rotation
(
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
start
=
target
.
get
rotation
(
)
;
}
<SENTENCE_END/>
updateupdateupdate (3.64e-01)
start (1.92e-01)
set (1.13e-01)
end (6.81e-02)
reset (3.32e-02)
get (3.06e-02)
%UNK% (2.80e-02)
distance (1.21e-02)
act (9.38e-03)
render (8.88e-03)
<SENTENCE_START>
{
target
.
set
rotation
(
start
+
(
end
-
start
)
*
percent
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
target
.
set
rotation
(
start
+
(
end
-
start
)
*
percent
)
;
}
<SENTENCE_END/>
%END%%END% (4.32e-01)
update (8.36e-02)
%UNK% (3.68e-02)
at (3.62e-02)
percent (3.48e-02)
dragged (2.22e-02)
relative (1.97e-02)
target (1.91e-02)
segment (1.17e-02)
performed (9.76e-03)
<SENTENCE_START>
{
target
.
set
rotation
(
start
+
(
end
-
start
)
*
percent
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
target
.
set
rotation
(
start
+
(
end
-
start
)
*
percent
)
;
}
<SENTENCE_END/>
get,rotationgetget (9.45e-01)
is (3.53e-02)
end (1.18e-02)
owns (6.71e-04)
return (6.70e-04)
needs (3.98e-04)
available (2.99e-04)
iterator (2.92e-04)
protected (2.62e-04)
state (2.21e-04)
<SENTENCE_START>
{
return
end
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
end
;
}
<SENTENCE_END/>
rotationend (9.89e-01)
begin (5.25e-03)
render (1.18e-03)
return (1.07e-03)
reset (7.36e-04)
flush (6.84e-04)
start (1.24e-04)
set (9.17e-05)
frame (4.73e-05)
%END% (4.48e-05)
<SENTENCE_START>
{
return
end
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
end
;
}
<SENTENCE_END/>
%END%%END% (9.28e-01)
value (5.58e-03)
20 (4.83e-03)
end (4.37e-03)
buffer (1.69e-03)
count (1.64e-03)
only (1.63e-03)
%UNK% (1.44e-03)
height (1.22e-03)
array (1.20e-03)
<SENTENCE_START>
{
return
end
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
end
;
}
<SENTENCE_END/>
set,rotationsetset (9.92e-01)
end (2.71e-03)
reset (5.76e-04)
this (5.28e-04)
rotation (3.29e-04)
translate (5.56e-05)
rotate (4.33e-05)
clear (4.32e-05)
begin (1.57e-05)
apply (9.85e-06)
<SENTENCE_START>
{
this
.
end
=
rotation
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
this
.
end
=
rotation
;
}
<SENTENCE_END/>
rotationend (6.69e-01)
set (1.38e-01)
%END% (7.43e-02)
rotation (2.06e-02)
reset (1.01e-02)
begin (5.63e-03)
render (5.04e-03)
loop (2.26e-03)
flush (1.62e-03)
clear (1.14e-03)
<SENTENCE_START>
{
this
.
end
=
rotation
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
this
.
end
=
rotation
;
}
<SENTENCE_END/>
%END%%END% (9.83e-01)
end (1.82e-03)
rotation (8.58e-04)
value (4.17e-04)
%UNK% (3.62e-04)
height (3.35e-04)
display (3.19e-04)
data (2.96e-04)
fv (2.95e-04)
position (2.76e-04)
<SENTENCE_START>
{
this
.
end
=
rotation
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
this
.
end
=
rotation
;
}
<SENTENCE_END/>
get,default,vertex,shadergetget (9.53e-01)
default (1.91e-02)
return (6.42e-03)
vertex (6.28e-03)
shader (2.71e-03)
is (2.16e-03)
classpath (1.74e-03)
string (3.51e-04)
if (3.39e-04)
read (2.97e-04)
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
defaultdefault (8.41e-01)
vertex (1.54e-01)
return (2.05e-03)
%END% (8.59e-04)
shader (7.56e-04)
classpath (6.69e-04)
get (1.34e-04)
string (4.06e-05)
files (4.04e-05)
read (2.71e-05)
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
vertexvertex (8.24e-01)
shader (1.58e-01)
%END% (8.88e-03)
default (6.90e-03)
classpath (5.02e-04)
string (1.54e-04)
return (1.14e-04)
read (4.09e-05)
%UNK% (2.49e-05)
gdx (2.47e-05)
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
shadershader (5.63e-01)
%END% (2.55e-01)
vertex (1.67e-01)
classpath (2.55e-03)
default (2.34e-03)
string (7.94e-04)
return (3.42e-04)
status (2.74e-04)
%UNK% (1.96e-04)
read (1.75e-04)
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
%END%%END% (9.38e-01)
shader (4.03e-02)
vertex (5.26e-03)
default (1.79e-03)
classpath (1.55e-03)
string (9.96e-04)
status (6.73e-04)
%UNK% (5.64e-04)
and (2.78e-04)
return (2.35e-04)
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
vertex
shader
==
null
)
default
vertex
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.vertex.glsl"
)
.
read
string
(
)
;
return
default
vertex
shader
;
}
<SENTENCE_END/>
get,default,fragment,shadergetget (9.35e-01)
default (3.31e-02)
fragment (6.02e-03)
return (5.96e-03)
is (4.64e-03)
shader (2.64e-03)
classpath (2.30e-03)
instance (1.09e-03)
string (3.54e-04)
files (3.34e-04)
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
defaultdefault (9.34e-01)
fragment (6.15e-02)
return (2.55e-03)
classpath (9.50e-04)
shader (4.15e-04)
%END% (7.21e-05)
files (4.56e-05)
string (3.51e-05)
get (2.88e-05)
instance (2.33e-05)
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
fragmentfragment (8.63e-01)
shader (1.17e-01)
default (1.15e-02)
%END% (6.04e-03)
classpath (6.26e-04)
string (1.78e-04)
return (1.27e-04)
status (4.11e-05)
read (3.61e-05)
%UNK% (3.18e-05)
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
shadershader (5.80e-01)
fragment (2.05e-01)
%END% (1.92e-01)
classpath (5.49e-03)
default (5.44e-03)
string (1.20e-03)
status (5.13e-04)
return (3.96e-04)
%UNK% (2.72e-04)
read (2.14e-04)
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
%END%%END% (9.20e-01)
shader (3.75e-02)
default (1.03e-02)
fragment (5.53e-03)
classpath (3.61e-03)
string (2.47e-03)
status (1.92e-03)
%UNK% (1.17e-03)
valid (6.62e-04)
equal (4.15e-04)
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
default
fragment
shader
==
null
)
default
fragment
shader
=
gdx
.
files
.
classpath
(
"com/badlogic/gdx/tests/g3d/shadows/system/realistic/pass1.fragment.glsl"
)
.
read
string
(
)
;
return
default
fragment
shader
;
}
<SENTENCE_END/>
add,meshaddset (5.35e-01)
add (1.42e-01)
copy (8.73e-02)
%UNK% (1.77e-02)
get (1.13e-02)
on (7.14e-03)
equals (6.90e-03)
load (6.21e-03)
remove (6.20e-03)
initialize (5.78e-03)
<SENTENCE_START>
{
for
(
model
mesh
other
:
meshes
)
{
if
(
other
.
id
.
equals
(
mesh
.
id
)
)
{
throw
new
gdx
runtime
exception
(
"Mesh with id '"
+
other
.
id
+
"' already in model"
)
;
}
}
meshes
.
add
(
mesh
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
model
mesh
other
:
meshes
)
{
if
(
other
.
id
.
equals
(
mesh
.
id
)
)
{
throw
new
gdx
runtime
exception
(
"Mesh with id '"
+
other
.
id
+
"' already in model"
)
;
}
}
meshes
.
add
(
mesh
)
;
}
<SENTENCE_END/>
mesh%END% (6.64e-01)
mesh (3.90e-02)
model (1.54e-02)
all (1.41e-02)
%UNK% (1.23e-02)
meshes (1.15e-02)
set (8.67e-03)
change (6.55e-03)
debug (5.22e-03)
file (4.33e-03)
<SENTENCE_START>
{
for
(
model
mesh
other
:
meshes
)
{
if
(
other
.
id
.
equals
(
mesh
.
id
)
)
{
throw
new
gdx
runtime
exception
(
"Mesh with id '"
+
other
.
id
+
"' already in model"
)
;
}
}
meshes
.
add
(
mesh
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
model
mesh
other
:
meshes
)
{
if
(
other
.
id
.
equals
(
mesh
.
id
)
)
{
throw
new
gdx
runtime
exception
(
"Mesh with id '"
+
other
.
id
+
"' already in model"
)
;
}
}
meshes
.
add
(
mesh
)
;
}
<SENTENCE_END/>
%END%%END% (8.73e-01)
mesh (1.40e-02)
meshes (4.90e-03)
id (4.82e-03)
%UNK% (4.40e-03)
all (3.76e-03)
other (2.70e-03)
file (2.01e-03)
changed (1.82e-03)
and (1.72e-03)
<SENTENCE_START>
{
for
(
model
mesh
other
:
meshes
)
{
if
(
other
.
id
.
equals
(
mesh
.
id
)
)
{
throw
new
gdx
runtime
exception
(
"Mesh with id '"
+
other
.
id
+
"' already in model"
)
;
}
}
meshes
.
add
(
mesh
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
model
mesh
other
:
meshes
)
{
if
(
other
.
id
.
equals
(
mesh
.
id
)
)
{
throw
new
gdx
runtime
exception
(
"Mesh with id '"
+
other
.
id
+
"' already in model"
)
;
}
}
meshes
.
add
(
mesh
)
;
}
<SENTENCE_END/>
get,c,ptrgetget (9.83e-01)
c (4.72e-03)
obj (1.88e-03)
swig (1.36e-03)
is (8.93e-04)
return (8.85e-04)
ptr (5.54e-04)
0 (3.63e-04)
null (3.14e-04)
obtain (2.82e-04)
<SENTENCE_START>
{
return
(
obj
==
null
)
?
0
:
obj
.
swig
c
ptr
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
(
obj
==
null
)
?
0
:
obj
.
swig
c
ptr
;
}
<SENTENCE_END/>
cc (9.96e-01)
ptr (2.00e-03)
get (1.04e-03)
%END% (8.72e-04)
swig (1.90e-04)
instance (1.07e-04)
overlaps (3.51e-05)
derived (2.62e-05)
match (7.06e-06)
is (6.12e-06)
<SENTENCE_START>
{
return
(
obj
==
null
)
?
0
:
obj
.
swig
c
ptr
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
(
obj
==
null
)
?
0
:
obj
.
swig
c
ptr
;
}
<SENTENCE_END/>
ptrptr (9.96e-01)
c (2.15e-03)
%END% (1.61e-03)
obj (1.88e-05)
0 (6.12e-06)
get (6.07e-06)
return (5.61e-06)
string (2.74e-06)
instance (2.57e-06)
swig (2.31e-06)
<SENTENCE_START>
{
return
(
obj
==
null
)
?
0
:
obj
.
swig
c
ptr
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
(
obj
==
null
)
?
0
:
obj
.
swig
c
ptr
;
}
<SENTENCE_END/>
%END%%END% (9.61e-01)
ptr (3.23e-02)
obj (8.25e-04)
c (4.05e-04)
return (2.33e-04)
string (2.06e-04)
double (1.33e-04)
at (1.02e-04)
0 (9.89e-05)
swig (5.39e-05)
<SENTENCE_START>
{
return
(
obj
==
null
)
?
0
:
obj
.
swig
c
ptr
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
(
obj
==
null
)
?
0
:
obj
.
swig
c
ptr
;
}
<SENTENCE_END/>
new,instancenewis (2.65e-01)
%UNK% (2.37e-01)
get (2.01e-01)
to (6.28e-02)
set (1.32e-02)
add (8.56e-03)
result (6.81e-03)
abs (6.50e-03)
obtain (5.81e-03)
out (5.70e-03)
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
c
,
size
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
c
,
size
)
;
}
<SENTENCE_END/>
instance%UNK% (4.14e-01)
%END% (2.05e-01)
to (4.16e-02)
2 (1.51e-02)
is (1.10e-02)
string (8.85e-03)
data (8.02e-03)
array (6.62e-03)
3 (6.45e-03)
c (5.68e-03)
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
c
,
size
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
c
,
size
)
;
}
<SENTENCE_END/>
%END%%END% (8.30e-01)
%UNK% (5.50e-02)
to (6.01e-03)
2 (4.75e-03)
string (3.61e-03)
array (3.25e-03)
data (2.39e-03)
3 (2.26e-03)
class (1.97e-03)
endian (1.96e-03)
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
c
,
size
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
c
,
size
)
;
}
<SENTENCE_END/>
get,lengthgetis (3.47e-01)
%UNK% (1.66e-01)
to (1.27e-01)
get (9.20e-02)
add (1.58e-02)
result (1.52e-02)
abs (1.11e-02)
java (9.21e-03)
with (8.88e-03)
out (8.16e-03)
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
)
;
}
<SENTENCE_END/>
length%UNK% (2.25e-01)
%END% (1.71e-01)
array (1.20e-01)
to (1.13e-01)
with (2.59e-02)
2 (1.99e-02)
fv (1.18e-02)
iv (1.05e-02)
4 (9.62e-03)
string (9.23e-03)
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
)
;
}
<SENTENCE_END/>
%END%%END% (7.41e-01)
%UNK% (5.84e-02)
array (3.40e-02)
to (2.49e-02)
2 (6.74e-03)
fv (6.23e-03)
string (5.08e-03)
all (4.25e-03)
endian (3.57e-03)
iv (3.54e-03)
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
)
;
}
<SENTENCE_END/>
getgetto (2.30e-01)
%UNK% (2.26e-01)
is (1.44e-01)
get (8.64e-02)
add (3.14e-02)
with (1.50e-02)
parse (1.05e-02)
out (9.02e-03)
result (8.94e-03)
read (8.82e-03)
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
,
index
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
,
index
)
;
}
<SENTENCE_END/>
%END%%END% (2.94e-01)
%UNK% (2.40e-01)
to (8.14e-02)
array (5.25e-02)
string (1.71e-02)
2 (1.13e-02)
with (1.08e-02)
3 (7.93e-03)
4 (6.43e-03)
fv (6.32e-03)
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
,
index
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
,
index
)
;
}
<SENTENCE_END/>
setset%UNK% (3.34e-01)
add (1.34e-01)
to (1.23e-01)
set (3.81e-02)
draw (1.79e-02)
%END% (1.37e-02)
parse (1.27e-02)
print (1.16e-02)
array (1.08e-02)
with (8.61e-03)
<SENTENCE_START>
{
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
,
index
,
value
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
,
index
,
value
)
;
}
<SENTENCE_END/>
%END%%END% (8.51e-01)
%UNK% (3.92e-02)
array (1.96e-02)
to (1.50e-02)
all (6.13e-03)
string (4.62e-03)
value (2.76e-03)
fv (2.31e-03)
with (2.18e-03)
object (1.60e-03)
<SENTENCE_START>
{
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
,
index
,
value
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
java
.
lang
.
reflect
.
array
.
%SELF%
(
array
,
index
,
value
)
;
}
<SENTENCE_END/>
setsetset (9.84e-01)
x (3.01e-03)
y (1.68e-03)
reset (9.43e-04)
point (8.81e-04)
this (6.88e-04)
translate (5.11e-04)
initialize (4.06e-04)
return (2.38e-04)
conjugate (2.34e-04)
<SENTENCE_START>
{
this
.
x
=
point
.
x
;
this
.
y
=
point
.
y
;
return
this
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
this
.
x
=
point
.
x
;
this
.
y
=
point
.
y
;
return
this
;
}
<SENTENCE_END/>
%END%%END% (5.88e-01)
x (1.28e-01)
y (9.31e-02)
position (5.89e-02)
bounds (1.54e-02)
local (1.07e-02)
to (7.43e-03)
left (7.04e-03)
moved (5.94e-03)
center (4.43e-03)
<SENTENCE_START>
{
this
.
x
=
point
.
x
;
this
.
y
=
point
.
y
;
return
this
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
this
.
x
=
point
.
x
;
this
.
y
=
point
.
y
;
return
this
;
}
<SENTENCE_END/>
setsetset (9.86e-01)
translate (2.39e-03)
x (2.39e-03)
y (1.31e-03)
this (8.26e-04)
grow (2.60e-04)
reset (2.41e-04)
conjugate (2.19e-04)
center (1.85e-04)
add (1.69e-04)
<SENTENCE_START>
{
this
.
x
=
x
;
this
.
y
=
y
;
return
this
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
this
.
x
=
x
;
this
.
y
=
y
;
return
this
;
}
<SENTENCE_END/>
%END%%END% (7.42e-01)
x (8.42e-02)
y (5.42e-02)
position (3.34e-02)
left (8.96e-03)
local (7.54e-03)
bounds (5.01e-03)
bottom (4.82e-03)
90 (4.45e-03)
to (4.34e-03)
<SENTENCE_START>
{
this
.
x
=
x
;
this
.
y
=
y
;
return
this
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
this
.
x
=
x
;
this
.
y
=
y
;
return
this
;
}
<SENTENCE_END/>
compute,tagcomputeadd (1.01e-01)
get (9.49e-02)
to (5.99e-02)
mouse (4.93e-02)
move (4.32e-02)
hash (3.80e-02)
scale (2.59e-02)
%UNK% (2.54e-02)
length (2.33e-02)
draw (2.15e-02)
<SENTENCE_START>
{
return
(
(
(
long
)
(
y
+
y
offset
)
)
<<
y
shift
)
+
(
(
(
long
)
(
x
scale
*
x
)
)
+
x
offset
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
(
(
(
long
)
(
y
+
y
offset
)
)
<<
y
shift
)
+
(
(
(
long
)
(
x
scale
*
x
)
)
+
x
offset
)
;
}
<SENTENCE_END/>
tag%END% (8.98e-01)
all (9.30e-03)
array (7.60e-03)
and (6.80e-03)
to (4.43e-03)
y (3.46e-03)
x (3.34e-03)
at (3.32e-03)
long (3.28e-03)
offset (2.34e-03)
<SENTENCE_START>
{
return
(
(
(
long
)
(
y
+
y
offset
)
)
<<
y
shift
)
+
(
(
(
long
)
(
x
scale
*
x
)
)
+
x
offset
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
(
(
(
long
)
(
y
+
y
offset
)
)
<<
y
shift
)
+
(
(
(
long
)
(
x
scale
*
x
)
)
+
x
offset
)
;
}
<SENTENCE_END/>
%END%%END% (9.68e-01)
offset (2.68e-03)
all (2.66e-03)
y (1.63e-03)
and (1.59e-03)
x (1.32e-03)
scale (1.13e-03)
) (1.05e-03)
at (9.04e-04)
long (7.47e-04)
<SENTENCE_START>
{
return
(
(
(
long
)
(
y
+
y
offset
)
)
<<
y
shift
)
+
(
(
(
long
)
(
x
scale
*
x
)
)
+
x
offset
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
(
(
(
long
)
(
y
+
y
offset
)
)
<<
y
shift
)
+
(
(
(
long
)
(
x
scale
*
x
)
)
+
x
offset
)
;
}
<SENTENCE_END/>
compute,relative,tagcomputehash (2.90e-01)
add (1.91e-01)
get (5.40e-02)
put (4.19e-02)
contains (3.88e-02)
to (3.27e-02)
mouse (2.65e-02)
abs (2.49e-02)
set (1.21e-02)
len (1.16e-02)
<SENTENCE_START>
{
return
tag
+
(
y
<<
y
shift
)
+
(
x
<<
x
shift
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
tag
+
(
y
<<
y
shift
)
+
(
x
<<
x
shift
)
;
}
<SENTENCE_END/>
relative%END% (2.78e-01)
to (6.65e-02)
and (3.54e-02)
hash (2.67e-02)
y (2.42e-02)
x (2.29e-02)
%UNK% (2.07e-02)
array (1.54e-02)
clicked (1.21e-02)
ceil (1.08e-02)
<SENTENCE_START>
{
return
tag
+
(
y
<<
y
shift
)
+
(
x
<<
x
shift
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
tag
+
(
y
<<
y
shift
)
+
(
x
<<
x
shift
)
;
}
<SENTENCE_END/>
tag%END% (9.20e-01)
array (4.76e-03)
x (3.02e-03)
value (2.83e-03)
all (2.74e-03)
y (2.70e-03)
and (2.59e-03)
shift (1.94e-03)
to (1.76e-03)
at (1.67e-03)
<SENTENCE_START>
{
return
tag
+
(
y
<<
y
shift
)
+
(
x
<<
x
shift
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
tag
+
(
y
<<
y
shift
)
+
(
x
<<
x
shift
)
;
}
<SENTENCE_END/>
%END%%END% (9.51e-01)
x (6.05e-03)
y (3.68e-03)
shift (3.33e-03)
array (2.61e-03)
value (1.99e-03)
all (1.42e-03)
and (8.00e-04)
short (6.60e-04)
2 (6.55e-04)
<SENTENCE_START>
{
return
tag
+
(
y
<<
y
shift
)
+
(
x
<<
x
shift
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
tag
+
(
y
<<
y
shift
)
+
(
x
<<
x
shift
)
;
}
<SENTENCE_END/>
limit,capacitylimitmax (4.63e-01)
is (1.26e-01)
get (1.02e-01)
has (6.71e-02)
min (5.61e-02)
first (3.06e-02)
within (2.61e-02)
size (2.06e-02)
ensure (1.36e-02)
shrink (1.35e-02)
<SENTENCE_START>
{
return
max
count
!=
0
&&
capacity
>
max
count
?
max
count
:
capacity
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
max
count
!=
0
&&
capacity
>
max
count
?
max
count
:
capacity
;
}
<SENTENCE_END/>
capacitymax (9.21e-01)
%END% (3.87e-02)
count (1.27e-02)
min (6.23e-03)
size (4.71e-03)
first (1.61e-03)
return (1.43e-03)
minimum (1.24e-03)
height (1.00e-03)
within (8.93e-04)
<SENTENCE_START>
{
return
max
count
!=
0
&&
capacity
>
max
count
?
max
count
:
capacity
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
max
count
!=
0
&&
capacity
>
max
count
?
max
count
:
capacity
;
}
<SENTENCE_END/>
%END%%END% (5.49e-01)
count (3.83e-01)
max (3.17e-02)
capacity (4.70e-03)
value (1.96e-03)
size (1.10e-03)
min (1.03e-03)
height (7.80e-04)
valid (6.59e-04)
0 (5.59e-04)
<SENTENCE_START>
{
return
max
count
!=
0
&&
capacity
>
max
count
?
max
count
:
capacity
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
return
max
count
!=
0
&&
capacity
>
max
count
?
max
count
:
capacity
;
}
<SENTENCE_END/>
create,particlecreate%END% (4.11e-01)
allocate (8.01e-02)
add (6.01e-02)
get (5.62e-02)
resize (4.66e-02)
set (4.54e-02)
capacity (3.09e-02)
%UNK% (2.68e-02)
init (1.90e-02)
create (1.33e-02)
<SENTENCE_START>
{
if
(
m
count
>=
m
internal
allocated
capacity
)
{
int
capacity
=
m
count
!=
0
?
2
*
m
count
:
settings
.
min
particle
buffer
capacity
;
capacity
=
limit
capacity
(
capacity
,
m
max
count
)
;
capacity
=
limit
capacity
(
capacity
,
m
flags
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
position
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
velocity
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
color
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
user
data
buffer
.
user
supplied
capacity
)
;
if
(
m
internal
allocated
capacity
<
capacity
)
{
m
flags
buffer
.
data
=
reallocate
buffer
(
m
flags
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
position
buffer
.
data
=
reallocate
buffer
(
m
position
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
velocity
buffer
.
data
=
reallocate
buffer
(
m
velocity
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
buffer
=
buffer
utils
.
reallocate
buffer
(
m
accumulation
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
2
buffer
=
buffer
utils
.
reallocate
buffer
(
vec
2
.
class
,
m
accumulation
2
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
depth
buffer
=
buffer
utils
.
reallocate
buffer
(
m
depth
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
color
buffer
.
data
=
reallocate
buffer
(
m
color
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
group
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
group
.
class
,
m
group
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
user
data
buffer
.
data
=
reallocate
buffer
(
m
user
data
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
internal
allocated
capacity
=
capacity
;
}
}
if
(
m
count
>=
m
internal
allocated
capacity
)
{
return
settings
.
invalid
particle
index
;
}
int
index
=
m
count
++
;
m
flags
buffer
.
data
[
index
]
=
def
.
flags
;
m
position
buffer
.
data
[
index
]
.
set
(
def
.
position
)
;
m
velocity
buffer
.
data
[
index
]
.
set
(
def
.
velocity
)
;
m
group
buffer
[
index
]
=
null
;
if
(
m
depth
buffer
!=
null
)
{
m
depth
buffer
[
index
]
=
0
;
}
if
(
m
color
buffer
.
data
!=
null
||
def
.
color
!=
null
)
{
m
color
buffer
.
data
=
request
particle
buffer
(
m
color
buffer
.
data
class
,
m
color
buffer
.
data
)
;
m
color
buffer
.
data
[
index
]
.
set
(
def
.
color
)
;
}
if
(
m
user
data
buffer
.
data
!=
null
||
def
.
user
data
!=
null
)
{
m
user
data
buffer
.
data
=
request
particle
buffer
(
m
user
data
buffer
.
data
class
,
m
user
data
buffer
.
data
)
;
m
user
data
buffer
.
data
[
index
]
=
def
.
user
data
;
}
if
(
m
proxy
count
>=
m
proxy
capacity
)
{
int
old
capacity
=
m
proxy
capacity
;
int
new
capacity
=
m
proxy
count
!=
0
?
2
*
m
proxy
count
:
settings
.
min
particle
buffer
capacity
;
m
proxy
buffer
=
buffer
utils
.
reallocate
buffer
(
proxy
.
class
,
m
proxy
buffer
,
old
capacity
,
new
capacity
)
;
m
proxy
capacity
=
new
capacity
;
}
m
proxy
buffer
[
m
proxy
count
++
]
.
index
=
index
;
return
index
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
m
count
>=
m
internal
allocated
capacity
)
{
int
capacity
=
m
count
!=
0
?
2
*
m
count
:
settings
.
min
particle
buffer
capacity
;
capacity
=
limit
capacity
(
capacity
,
m
max
count
)
;
capacity
=
limit
capacity
(
capacity
,
m
flags
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
position
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
velocity
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
color
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
user
data
buffer
.
user
supplied
capacity
)
;
if
(
m
internal
allocated
capacity
<
capacity
)
{
m
flags
buffer
.
data
=
reallocate
buffer
(
m
flags
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
position
buffer
.
data
=
reallocate
buffer
(
m
position
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
velocity
buffer
.
data
=
reallocate
buffer
(
m
velocity
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
buffer
=
buffer
utils
.
reallocate
buffer
(
m
accumulation
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
2
buffer
=
buffer
utils
.
reallocate
buffer
(
vec
2
.
class
,
m
accumulation
2
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
depth
buffer
=
buffer
utils
.
reallocate
buffer
(
m
depth
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
color
buffer
.
data
=
reallocate
buffer
(
m
color
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
group
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
group
.
class
,
m
group
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
user
data
buffer
.
data
=
reallocate
buffer
(
m
user
data
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
internal
allocated
capacity
=
capacity
;
}
}
if
(
m
count
>=
m
internal
allocated
capacity
)
{
return
settings
.
invalid
particle
index
;
}
int
index
=
m
count
++
;
m
flags
buffer
.
data
[
index
]
=
def
.
flags
;
m
position
buffer
.
data
[
index
]
.
set
(
def
.
position
)
;
m
velocity
buffer
.
data
[
index
]
.
set
(
def
.
velocity
)
;
m
group
buffer
[
index
]
=
null
;
if
(
m
depth
buffer
!=
null
)
{
m
depth
buffer
[
index
]
=
0
;
}
if
(
m
color
buffer
.
data
!=
null
||
def
.
color
!=
null
)
{
m
color
buffer
.
data
=
request
particle
buffer
(
m
color
buffer
.
data
class
,
m
color
buffer
.
data
)
;
m
color
buffer
.
data
[
index
]
.
set
(
def
.
color
)
;
}
if
(
m
user
data
buffer
.
data
!=
null
||
def
.
user
data
!=
null
)
{
m
user
data
buffer
.
data
=
request
particle
buffer
(
m
user
data
buffer
.
data
class
,
m
user
data
buffer
.
data
)
;
m
user
data
buffer
.
data
[
index
]
=
def
.
user
data
;
}
if
(
m
proxy
count
>=
m
proxy
capacity
)
{
int
old
capacity
=
m
proxy
capacity
;
int
new
capacity
=
m
proxy
count
!=
0
?
2
*
m
proxy
count
:
settings
.
min
particle
buffer
capacity
;
m
proxy
buffer
=
buffer
utils
.
reallocate
buffer
(
proxy
.
class
,
m
proxy
buffer
,
old
capacity
,
new
capacity
)
;
m
proxy
capacity
=
new
capacity
;
}
m
proxy
buffer
[
m
proxy
count
++
]
.
index
=
index
;
return
index
;
}
<SENTENCE_END/>
particle%END% (7.53e-01)
capacity (2.17e-02)
buffer (2.08e-02)
m (1.39e-02)
allocate (7.97e-03)
user (7.21e-03)
internal (7.19e-03)
reallocate (7.14e-03)
allocated (7.11e-03)
data (5.95e-03)
<SENTENCE_START>
{
if
(
m
count
>=
m
internal
allocated
capacity
)
{
int
capacity
=
m
count
!=
0
?
2
*
m
count
:
settings
.
min
particle
buffer
capacity
;
capacity
=
limit
capacity
(
capacity
,
m
max
count
)
;
capacity
=
limit
capacity
(
capacity
,
m
flags
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
position
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
velocity
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
color
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
user
data
buffer
.
user
supplied
capacity
)
;
if
(
m
internal
allocated
capacity
<
capacity
)
{
m
flags
buffer
.
data
=
reallocate
buffer
(
m
flags
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
position
buffer
.
data
=
reallocate
buffer
(
m
position
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
velocity
buffer
.
data
=
reallocate
buffer
(
m
velocity
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
buffer
=
buffer
utils
.
reallocate
buffer
(
m
accumulation
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
2
buffer
=
buffer
utils
.
reallocate
buffer
(
vec
2
.
class
,
m
accumulation
2
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
depth
buffer
=
buffer
utils
.
reallocate
buffer
(
m
depth
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
color
buffer
.
data
=
reallocate
buffer
(
m
color
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
group
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
group
.
class
,
m
group
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
user
data
buffer
.
data
=
reallocate
buffer
(
m
user
data
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
internal
allocated
capacity
=
capacity
;
}
}
if
(
m
count
>=
m
internal
allocated
capacity
)
{
return
settings
.
invalid
particle
index
;
}
int
index
=
m
count
++
;
m
flags
buffer
.
data
[
index
]
=
def
.
flags
;
m
position
buffer
.
data
[
index
]
.
set
(
def
.
position
)
;
m
velocity
buffer
.
data
[
index
]
.
set
(
def
.
velocity
)
;
m
group
buffer
[
index
]
=
null
;
if
(
m
depth
buffer
!=
null
)
{
m
depth
buffer
[
index
]
=
0
;
}
if
(
m
color
buffer
.
data
!=
null
||
def
.
color
!=
null
)
{
m
color
buffer
.
data
=
request
particle
buffer
(
m
color
buffer
.
data
class
,
m
color
buffer
.
data
)
;
m
color
buffer
.
data
[
index
]
.
set
(
def
.
color
)
;
}
if
(
m
user
data
buffer
.
data
!=
null
||
def
.
user
data
!=
null
)
{
m
user
data
buffer
.
data
=
request
particle
buffer
(
m
user
data
buffer
.
data
class
,
m
user
data
buffer
.
data
)
;
m
user
data
buffer
.
data
[
index
]
=
def
.
user
data
;
}
if
(
m
proxy
count
>=
m
proxy
capacity
)
{
int
old
capacity
=
m
proxy
capacity
;
int
new
capacity
=
m
proxy
count
!=
0
?
2
*
m
proxy
count
:
settings
.
min
particle
buffer
capacity
;
m
proxy
buffer
=
buffer
utils
.
reallocate
buffer
(
proxy
.
class
,
m
proxy
buffer
,
old
capacity
,
new
capacity
)
;
m
proxy
capacity
=
new
capacity
;
}
m
proxy
buffer
[
m
proxy
count
++
]
.
index
=
index
;
return
index
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
m
count
>=
m
internal
allocated
capacity
)
{
int
capacity
=
m
count
!=
0
?
2
*
m
count
:
settings
.
min
particle
buffer
capacity
;
capacity
=
limit
capacity
(
capacity
,
m
max
count
)
;
capacity
=
limit
capacity
(
capacity
,
m
flags
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
position
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
velocity
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
color
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
user
data
buffer
.
user
supplied
capacity
)
;
if
(
m
internal
allocated
capacity
<
capacity
)
{
m
flags
buffer
.
data
=
reallocate
buffer
(
m
flags
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
position
buffer
.
data
=
reallocate
buffer
(
m
position
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
velocity
buffer
.
data
=
reallocate
buffer
(
m
velocity
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
buffer
=
buffer
utils
.
reallocate
buffer
(
m
accumulation
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
2
buffer
=
buffer
utils
.
reallocate
buffer
(
vec
2
.
class
,
m
accumulation
2
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
depth
buffer
=
buffer
utils
.
reallocate
buffer
(
m
depth
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
color
buffer
.
data
=
reallocate
buffer
(
m
color
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
group
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
group
.
class
,
m
group
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
user
data
buffer
.
data
=
reallocate
buffer
(
m
user
data
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
internal
allocated
capacity
=
capacity
;
}
}
if
(
m
count
>=
m
internal
allocated
capacity
)
{
return
settings
.
invalid
particle
index
;
}
int
index
=
m
count
++
;
m
flags
buffer
.
data
[
index
]
=
def
.
flags
;
m
position
buffer
.
data
[
index
]
.
set
(
def
.
position
)
;
m
velocity
buffer
.
data
[
index
]
.
set
(
def
.
velocity
)
;
m
group
buffer
[
index
]
=
null
;
if
(
m
depth
buffer
!=
null
)
{
m
depth
buffer
[
index
]
=
0
;
}
if
(
m
color
buffer
.
data
!=
null
||
def
.
color
!=
null
)
{
m
color
buffer
.
data
=
request
particle
buffer
(
m
color
buffer
.
data
class
,
m
color
buffer
.
data
)
;
m
color
buffer
.
data
[
index
]
.
set
(
def
.
color
)
;
}
if
(
m
user
data
buffer
.
data
!=
null
||
def
.
user
data
!=
null
)
{
m
user
data
buffer
.
data
=
request
particle
buffer
(
m
user
data
buffer
.
data
class
,
m
user
data
buffer
.
data
)
;
m
user
data
buffer
.
data
[
index
]
=
def
.
user
data
;
}
if
(
m
proxy
count
>=
m
proxy
capacity
)
{
int
old
capacity
=
m
proxy
capacity
;
int
new
capacity
=
m
proxy
count
!=
0
?
2
*
m
proxy
count
:
settings
.
min
particle
buffer
capacity
;
m
proxy
buffer
=
buffer
utils
.
reallocate
buffer
(
proxy
.
class
,
m
proxy
buffer
,
old
capacity
,
new
capacity
)
;
m
proxy
capacity
=
new
capacity
;
}
m
proxy
buffer
[
m
proxy
count
++
]
.
index
=
index
;
return
index
;
}
<SENTENCE_END/>
%END%%END% (7.95e-01)
buffer (2.84e-02)
capacity (1.91e-02)
m (1.22e-02)
data (7.22e-03)
particle (5.85e-03)
allocated (5.63e-03)
reallocate (4.95e-03)
user (4.77e-03)
index (3.59e-03)
<SENTENCE_START>
{
if
(
m
count
>=
m
internal
allocated
capacity
)
{
int
capacity
=
m
count
!=
0
?
2
*
m
count
:
settings
.
min
particle
buffer
capacity
;
capacity
=
limit
capacity
(
capacity
,
m
max
count
)
;
capacity
=
limit
capacity
(
capacity
,
m
flags
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
position
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
velocity
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
color
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
user
data
buffer
.
user
supplied
capacity
)
;
if
(
m
internal
allocated
capacity
<
capacity
)
{
m
flags
buffer
.
data
=
reallocate
buffer
(
m
flags
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
position
buffer
.
data
=
reallocate
buffer
(
m
position
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
velocity
buffer
.
data
=
reallocate
buffer
(
m
velocity
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
buffer
=
buffer
utils
.
reallocate
buffer
(
m
accumulation
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
2
buffer
=
buffer
utils
.
reallocate
buffer
(
vec
2
.
class
,
m
accumulation
2
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
depth
buffer
=
buffer
utils
.
reallocate
buffer
(
m
depth
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
color
buffer
.
data
=
reallocate
buffer
(
m
color
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
group
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
group
.
class
,
m
group
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
user
data
buffer
.
data
=
reallocate
buffer
(
m
user
data
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
internal
allocated
capacity
=
capacity
;
}
}
if
(
m
count
>=
m
internal
allocated
capacity
)
{
return
settings
.
invalid
particle
index
;
}
int
index
=
m
count
++
;
m
flags
buffer
.
data
[
index
]
=
def
.
flags
;
m
position
buffer
.
data
[
index
]
.
set
(
def
.
position
)
;
m
velocity
buffer
.
data
[
index
]
.
set
(
def
.
velocity
)
;
m
group
buffer
[
index
]
=
null
;
if
(
m
depth
buffer
!=
null
)
{
m
depth
buffer
[
index
]
=
0
;
}
if
(
m
color
buffer
.
data
!=
null
||
def
.
color
!=
null
)
{
m
color
buffer
.
data
=
request
particle
buffer
(
m
color
buffer
.
data
class
,
m
color
buffer
.
data
)
;
m
color
buffer
.
data
[
index
]
.
set
(
def
.
color
)
;
}
if
(
m
user
data
buffer
.
data
!=
null
||
def
.
user
data
!=
null
)
{
m
user
data
buffer
.
data
=
request
particle
buffer
(
m
user
data
buffer
.
data
class
,
m
user
data
buffer
.
data
)
;
m
user
data
buffer
.
data
[
index
]
=
def
.
user
data
;
}
if
(
m
proxy
count
>=
m
proxy
capacity
)
{
int
old
capacity
=
m
proxy
capacity
;
int
new
capacity
=
m
proxy
count
!=
0
?
2
*
m
proxy
count
:
settings
.
min
particle
buffer
capacity
;
m
proxy
buffer
=
buffer
utils
.
reallocate
buffer
(
proxy
.
class
,
m
proxy
buffer
,
old
capacity
,
new
capacity
)
;
m
proxy
capacity
=
new
capacity
;
}
m
proxy
buffer
[
m
proxy
count
++
]
.
index
=
index
;
return
index
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
if
(
m
count
>=
m
internal
allocated
capacity
)
{
int
capacity
=
m
count
!=
0
?
2
*
m
count
:
settings
.
min
particle
buffer
capacity
;
capacity
=
limit
capacity
(
capacity
,
m
max
count
)
;
capacity
=
limit
capacity
(
capacity
,
m
flags
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
position
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
velocity
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
color
buffer
.
user
supplied
capacity
)
;
capacity
=
limit
capacity
(
capacity
,
m
user
data
buffer
.
user
supplied
capacity
)
;
if
(
m
internal
allocated
capacity
<
capacity
)
{
m
flags
buffer
.
data
=
reallocate
buffer
(
m
flags
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
position
buffer
.
data
=
reallocate
buffer
(
m
position
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
velocity
buffer
.
data
=
reallocate
buffer
(
m
velocity
buffer
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
buffer
=
buffer
utils
.
reallocate
buffer
(
m
accumulation
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
accumulation
2
buffer
=
buffer
utils
.
reallocate
buffer
(
vec
2
.
class
,
m
accumulation
2
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
depth
buffer
=
buffer
utils
.
reallocate
buffer
(
m
depth
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
color
buffer
.
data
=
reallocate
buffer
(
m
color
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
group
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
group
.
class
,
m
group
buffer
,
0
,
m
internal
allocated
capacity
,
capacity
,
false
)
;
m
user
data
buffer
.
data
=
reallocate
buffer
(
m
user
data
buffer
,
m
internal
allocated
capacity
,
capacity
,
true
)
;
m
internal
allocated
capacity
=
capacity
;
}
}
if
(
m
count
>=
m
internal
allocated
capacity
)
{
return
settings
.
invalid
particle
index
;
}
int
index
=
m
count
++
;
m
flags
buffer
.
data
[
index
]
=
def
.
flags
;
m
position
buffer
.
data
[
index
]
.
set
(
def
.
position
)
;
m
velocity
buffer
.
data
[
index
]
.
set
(
def
.
velocity
)
;
m
group
buffer
[
index
]
=
null
;
if
(
m
depth
buffer
!=
null
)
{
m
depth
buffer
[
index
]
=
0
;
}
if
(
m
color
buffer
.
data
!=
null
||
def
.
color
!=
null
)
{
m
color
buffer
.
data
=
request
particle
buffer
(
m
color
buffer
.
data
class
,
m
color
buffer
.
data
)
;
m
color
buffer
.
data
[
index
]
.
set
(
def
.
color
)
;
}
if
(
m
user
data
buffer
.
data
!=
null
||
def
.
user
data
!=
null
)
{
m
user
data
buffer
.
data
=
request
particle
buffer
(
m
user
data
buffer
.
data
class
,
m
user
data
buffer
.
data
)
;
m
user
data
buffer
.
data
[
index
]
=
def
.
user
data
;
}
if
(
m
proxy
count
>=
m
proxy
capacity
)
{
int
old
capacity
=
m
proxy
capacity
;
int
new
capacity
=
m
proxy
count
!=
0
?
2
*
m
proxy
count
:
settings
.
min
particle
buffer
capacity
;
m
proxy
buffer
=
buffer
utils
.
reallocate
buffer
(
proxy
.
class
,
m
proxy
buffer
,
old
capacity
,
new
capacity
)
;
m
proxy
capacity
=
new
capacity
;
}
m
proxy
buffer
[
m
proxy
count
++
]
.
index
=
index
;
return
index
;
}
<SENTENCE_END/>
destroy,particledestroyappend (3.35e-01)
get (2.89e-01)
set (1.65e-01)
init (2.27e-02)
%UNK% (1.93e-02)
is (1.30e-02)
create (1.04e-02)
load (6.68e-03)
flags (5.49e-03)
begin (5.34e-03)
<SENTENCE_START>
{
int
flags
=
particle
type
.
b
2
zombie
particle
;
if
(
call
destruction
listener
)
{
flags
|=
particle
type
.
b
2
destruction
listener
;
}
m
flags
buffer
.
data
[
index
]
|=
flags
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
int
flags
=
particle
type
.
b
2
zombie
particle
;
if
(
call
destruction
listener
)
{
flags
|=
particle
type
.
b
2
destruction
listener
;
}
m
flags
buffer
.
data
[
index
]
|=
flags
;
}
<SENTENCE_END/>
particle%END% (4.67e-01)
flags (8.33e-02)
get (5.19e-02)
%UNK% (3.56e-02)
type (3.36e-02)
particle (3.17e-02)
call (2.84e-02)
listener (2.36e-02)
set (1.09e-02)
zombie (6.82e-03)
<SENTENCE_START>
{
int
flags
=
particle
type
.
b
2
zombie
particle
;
if
(
call
destruction
listener
)
{
flags
|=
particle
type
.
b
2
destruction
listener
;
}
m
flags
buffer
.
data
[
index
]
|=
flags
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
int
flags
=
particle
type
.
b
2
zombie
particle
;
if
(
call
destruction
listener
)
{
flags
|=
particle
type
.
b
2
destruction
listener
;
}
m
flags
buffer
.
data
[
index
]
|=
flags
;
}
<SENTENCE_END/>
%END%%END% (9.06e-01)
type (1.19e-02)
buffer (9.55e-03)
flags (9.26e-03)
particle (5.62e-03)
%UNK% (4.53e-03)
2 (3.57e-03)
index (3.28e-03)
destruction (2.94e-03)
zombie (2.15e-03)
<SENTENCE_START>
{
int
flags
=
particle
type
.
b
2
zombie
particle
;
if
(
call
destruction
listener
)
{
flags
|=
particle
type
.
b
2
destruction
listener
;
}
m
flags
buffer
.
data
[
index
]
|=
flags
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
int
flags
=
particle
type
.
b
2
zombie
particle
;
if
(
call
destruction
listener
)
{
flags
|=
particle
type
.
b
2
destruction
listener
;
}
m
flags
buffer
.
data
[
index
]
|=
flags
;
}
<SENTENCE_END/>
destroy,particles,in,shapedestroy%UNK% (1.76e-01)
create (4.64e-02)
render (4.48e-02)
get (4.40e-02)
calculate (3.96e-02)
draw (3.36e-02)
compute (3.20e-02)
report (3.14e-02)
set (2.89e-02)
init (2.70e-02)
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
particlesquery (4.95e-01)
%END% (2.57e-01)
%UNK% (8.01e-02)
aabb (3.13e-02)
temp (6.58e-03)
shape (6.13e-03)
xf (5.99e-03)
render (3.63e-03)
triangle (3.30e-03)
call (3.03e-03)
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
in%END% (8.36e-01)
aabb (1.07e-01)
xf (7.85e-03)
query (4.15e-03)
call (3.05e-03)
destroyed (2.15e-03)
shape (1.99e-03)
dpcallback (1.77e-03)
destruction (1.75e-03)
%UNK% (1.56e-03)
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
shape%END% (9.47e-01)
aabb (1.22e-02)
xf (5.62e-03)
dpcallback (2.02e-03)
init (1.27e-03)
compute (1.23e-03)
temp (1.20e-03)
destroyed (1.17e-03)
shape (9.18e-04)
call (8.67e-04)
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
%END%%END% (9.20e-01)
aabb (1.51e-02)
xf (8.67e-03)
dpcallback (3.51e-03)
compute (3.12e-03)
temp (2.71e-03)
init (2.63e-03)
shape (1.87e-03)
destroyed (1.62e-03)
return (1.02e-03)
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
dpcallback
.
init
(
this
,
shape
,
xf
,
call
destruction
listener
)
;
shape
.
compute
aabb
(
temp
,
xf
,
0
)
;
m
world
.
query
aabb
(
dpcallback
,
temp
)
;
return
dpcallback
.
destroyed
;
}
<SENTENCE_END/>
destroy,particles,in,groupdestroy%UNK% (5.43e-01)
update (7.25e-02)
get (4.75e-02)
is (2.32e-02)
destroy (1.79e-02)
set (1.73e-02)
generate (1.60e-02)
create (1.28e-02)
touch (1.17e-02)
begin (8.08e-03)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
particleslistener (1.98e-01)
particle (9.82e-02)
%END% (7.71e-02)
destroy (4.56e-02)
%UNK% (4.35e-02)
index (3.45e-02)
group (3.40e-02)
call (2.61e-02)
particles (2.28e-02)
destruction (2.22e-02)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
in%END% (7.63e-01)
particle (1.88e-02)
listener (1.05e-02)
index (1.01e-02)
of (9.09e-03)
group (8.01e-03)
particles (7.76e-03)
call (7.36e-03)
%UNK% (6.22e-03)
destruction (5.10e-03)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
group%END% (8.79e-01)
particle (1.15e-02)
destroy (4.90e-03)
index (4.22e-03)
of (4.01e-03)
particles (3.74e-03)
all (3.46e-03)
call (3.40e-03)
i (2.73e-03)
destruction (2.58e-03)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
%END%%END% (8.60e-01)
particle (2.16e-02)
destroy (1.63e-02)
m (4.60e-03)
call (4.08e-03)
index (3.62e-03)
of (3.30e-03)
particles (3.16e-03)
all (2.98e-03)
i (2.94e-03)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
destroy
particle
(
i
,
call
destruction
listener
)
;
}
}
<SENTENCE_END/>
create,particle,groupcreateget (1.12e-01)
set (9.51e-02)
%UNK% (9.13e-02)
create (8.15e-02)
add (6.86e-02)
%END% (6.46e-02)
compute (1.71e-02)
draw (1.33e-02)
update (1.29e-02)
reset (1.05e-02)
<SENTENCE_START>
{
float
stride
=
get
particle
stride
(
)
;
final
transform
identity
=
temp
transform
;
identity
.
set
identity
(
)
;
transform
transform
=
temp
transform
2
;
transform
.
set
identity
(
)
;
int
first
index
=
m
count
;
if
(
group
def
.
shape
!=
null
)
{
final
particle
def
particle
def
=
temp
particle
def
;
particle
def
.
flags
=
group
def
.
flags
;
particle
def
.
color
=
group
def
.
color
;
particle
def
.
user
data
=
group
def
.
user
data
;
shape
shape
=
group
def
.
shape
;
transform
.
set
(
group
def
.
position
,
group
def
.
angle
)
;
aabb
aabb
=
temp
;
int
child
count
=
shape
.
get
child
count
(
)
;
for
(
int
child
index
=
0
;
child
index
<
child
count
;
child
index
++
)
{
if
(
child
index
==
0
)
{
shape
.
compute
aabb
(
aabb
,
identity
,
child
index
)
;
}
else
{
aabb
child
aabb
=
temp
2
;
shape
.
compute
aabb
(
child
aabb
,
identity
,
child
index
)
;
aabb
.
combine
(
child
aabb
)
;
}
}
final
float
upper
bound
y
=
aabb
.
upper
bound
.
y
;
final
float
upper
bound
x
=
aabb
.
upper
bound
.
x
;
for
(
float
y
=
math
utils
.
floor
(
aabb
.
lower
bound
.
y
/
stride
)
*
stride
;
y
<
upper
bound
y
;
y
+=
stride
)
{
for
(
float
x
=
math
utils
.
floor
(
aabb
.
lower
bound
.
x
/
stride
)
*
stride
;
x
<
upper
bound
x
;
x
+=
stride
)
{
vec
2
p
=
temp
vec
;
p
.
x
=
x
;
p
.
y
=
y
;
if
(
shape
.
test
point
(
identity
,
p
)
)
{
transform
.
mul
to
out
(
transform
,
p
,
p
)
;
particle
def
.
position
.
x
=
p
.
x
;
particle
def
.
position
.
y
=
p
.
y
;
p
.
sub
local
(
group
def
.
position
)
;
vec
2
.
cross
to
out
unsafe
(
group
def
.
angular
velocity
,
p
,
particle
def
.
velocity
)
;
particle
def
.
velocity
.
add
local
(
group
def
.
linear
velocity
)
;
create
particle
(
particle
def
)
;
}
}
}
}
int
last
index
=
m
count
;
particle
group
group
=
new
particle
group
(
)
;
group
.
m
system
=
this
;
group
.
m
first
index
=
first
index
;
group
.
m
last
index
=
last
index
;
group
.
m
group
flags
=
group
def
.
group
flags
;
group
.
m
strength
=
group
def
.
strength
;
group
.
m
user
data
=
group
def
.
user
data
;
group
.
m
transform
.
set
(
transform
)
;
group
.
m
destroy
automatically
=
group
def
.
destroy
automatically
;
group
.
m
prev
=
null
;
group
.
m
next
=
m
group
list
;
if
(
m
group
list
!=
null
)
{
m
group
list
.
m
prev
=
group
;
}
m
group
list
=
group
;
++
m
group
count
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
;
}
update
contacts
(
true
)
;
if
(
(
group
def
.
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
first
index
<=
a
&&
b
<
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
group
def
.
strength
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
group
def
.
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
last
index
-
first
index
)
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
diagram
.
generate
(
stride
/
2
)
;
create
particle
group
callback
.
system
=
this
;
create
particle
group
callback
.
def
=
group
def
;
create
particle
group
callback
.
first
index
=
first
index
;
diagram
.
get
nodes
(
create
particle
group
callback
)
;
}
if
(
(
group
def
.
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
)
;
}
return
group
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
stride
=
get
particle
stride
(
)
;
final
transform
identity
=
temp
transform
;
identity
.
set
identity
(
)
;
transform
transform
=
temp
transform
2
;
transform
.
set
identity
(
)
;
int
first
index
=
m
count
;
if
(
group
def
.
shape
!=
null
)
{
final
particle
def
particle
def
=
temp
particle
def
;
particle
def
.
flags
=
group
def
.
flags
;
particle
def
.
color
=
group
def
.
color
;
particle
def
.
user
data
=
group
def
.
user
data
;
shape
shape
=
group
def
.
shape
;
transform
.
set
(
group
def
.
position
,
group
def
.
angle
)
;
aabb
aabb
=
temp
;
int
child
count
=
shape
.
get
child
count
(
)
;
for
(
int
child
index
=
0
;
child
index
<
child
count
;
child
index
++
)
{
if
(
child
index
==
0
)
{
shape
.
compute
aabb
(
aabb
,
identity
,
child
index
)
;
}
else
{
aabb
child
aabb
=
temp
2
;
shape
.
compute
aabb
(
child
aabb
,
identity
,
child
index
)
;
aabb
.
combine
(
child
aabb
)
;
}
}
final
float
upper
bound
y
=
aabb
.
upper
bound
.
y
;
final
float
upper
bound
x
=
aabb
.
upper
bound
.
x
;
for
(
float
y
=
math
utils
.
floor
(
aabb
.
lower
bound
.
y
/
stride
)
*
stride
;
y
<
upper
bound
y
;
y
+=
stride
)
{
for
(
float
x
=
math
utils
.
floor
(
aabb
.
lower
bound
.
x
/
stride
)
*
stride
;
x
<
upper
bound
x
;
x
+=
stride
)
{
vec
2
p
=
temp
vec
;
p
.
x
=
x
;
p
.
y
=
y
;
if
(
shape
.
test
point
(
identity
,
p
)
)
{
transform
.
mul
to
out
(
transform
,
p
,
p
)
;
particle
def
.
position
.
x
=
p
.
x
;
particle
def
.
position
.
y
=
p
.
y
;
p
.
sub
local
(
group
def
.
position
)
;
vec
2
.
cross
to
out
unsafe
(
group
def
.
angular
velocity
,
p
,
particle
def
.
velocity
)
;
particle
def
.
velocity
.
add
local
(
group
def
.
linear
velocity
)
;
create
particle
(
particle
def
)
;
}
}
}
}
int
last
index
=
m
count
;
particle
group
group
=
new
particle
group
(
)
;
group
.
m
system
=
this
;
group
.
m
first
index
=
first
index
;
group
.
m
last
index
=
last
index
;
group
.
m
group
flags
=
group
def
.
group
flags
;
group
.
m
strength
=
group
def
.
strength
;
group
.
m
user
data
=
group
def
.
user
data
;
group
.
m
transform
.
set
(
transform
)
;
group
.
m
destroy
automatically
=
group
def
.
destroy
automatically
;
group
.
m
prev
=
null
;
group
.
m
next
=
m
group
list
;
if
(
m
group
list
!=
null
)
{
m
group
list
.
m
prev
=
group
;
}
m
group
list
=
group
;
++
m
group
count
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
;
}
update
contacts
(
true
)
;
if
(
(
group
def
.
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
first
index
<=
a
&&
b
<
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
group
def
.
strength
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
group
def
.
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
last
index
-
first
index
)
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
diagram
.
generate
(
stride
/
2
)
;
create
particle
group
callback
.
system
=
this
;
create
particle
group
callback
.
def
=
group
def
;
create
particle
group
callback
.
first
index
=
first
index
;
diagram
.
get
nodes
(
create
particle
group
callback
)
;
}
if
(
(
group
def
.
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
)
;
}
return
group
;
}
<SENTENCE_END/>
particle%END% (4.30e-01)
%UNK% (6.49e-02)
get (3.68e-02)
create (2.36e-02)
add (1.89e-02)
set (1.49e-02)
group (1.05e-02)
to (8.23e-03)
index (6.46e-03)
transform (6.21e-03)
<SENTENCE_START>
{
float
stride
=
get
particle
stride
(
)
;
final
transform
identity
=
temp
transform
;
identity
.
set
identity
(
)
;
transform
transform
=
temp
transform
2
;
transform
.
set
identity
(
)
;
int
first
index
=
m
count
;
if
(
group
def
.
shape
!=
null
)
{
final
particle
def
particle
def
=
temp
particle
def
;
particle
def
.
flags
=
group
def
.
flags
;
particle
def
.
color
=
group
def
.
color
;
particle
def
.
user
data
=
group
def
.
user
data
;
shape
shape
=
group
def
.
shape
;
transform
.
set
(
group
def
.
position
,
group
def
.
angle
)
;
aabb
aabb
=
temp
;
int
child
count
=
shape
.
get
child
count
(
)
;
for
(
int
child
index
=
0
;
child
index
<
child
count
;
child
index
++
)
{
if
(
child
index
==
0
)
{
shape
.
compute
aabb
(
aabb
,
identity
,
child
index
)
;
}
else
{
aabb
child
aabb
=
temp
2
;
shape
.
compute
aabb
(
child
aabb
,
identity
,
child
index
)
;
aabb
.
combine
(
child
aabb
)
;
}
}
final
float
upper
bound
y
=
aabb
.
upper
bound
.
y
;
final
float
upper
bound
x
=
aabb
.
upper
bound
.
x
;
for
(
float
y
=
math
utils
.
floor
(
aabb
.
lower
bound
.
y
/
stride
)
*
stride
;
y
<
upper
bound
y
;
y
+=
stride
)
{
for
(
float
x
=
math
utils
.
floor
(
aabb
.
lower
bound
.
x
/
stride
)
*
stride
;
x
<
upper
bound
x
;
x
+=
stride
)
{
vec
2
p
=
temp
vec
;
p
.
x
=
x
;
p
.
y
=
y
;
if
(
shape
.
test
point
(
identity
,
p
)
)
{
transform
.
mul
to
out
(
transform
,
p
,
p
)
;
particle
def
.
position
.
x
=
p
.
x
;
particle
def
.
position
.
y
=
p
.
y
;
p
.
sub
local
(
group
def
.
position
)
;
vec
2
.
cross
to
out
unsafe
(
group
def
.
angular
velocity
,
p
,
particle
def
.
velocity
)
;
particle
def
.
velocity
.
add
local
(
group
def
.
linear
velocity
)
;
create
particle
(
particle
def
)
;
}
}
}
}
int
last
index
=
m
count
;
particle
group
group
=
new
particle
group
(
)
;
group
.
m
system
=
this
;
group
.
m
first
index
=
first
index
;
group
.
m
last
index
=
last
index
;
group
.
m
group
flags
=
group
def
.
group
flags
;
group
.
m
strength
=
group
def
.
strength
;
group
.
m
user
data
=
group
def
.
user
data
;
group
.
m
transform
.
set
(
transform
)
;
group
.
m
destroy
automatically
=
group
def
.
destroy
automatically
;
group
.
m
prev
=
null
;
group
.
m
next
=
m
group
list
;
if
(
m
group
list
!=
null
)
{
m
group
list
.
m
prev
=
group
;
}
m
group
list
=
group
;
++
m
group
count
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
;
}
update
contacts
(
true
)
;
if
(
(
group
def
.
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
first
index
<=
a
&&
b
<
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
group
def
.
strength
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
group
def
.
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
last
index
-
first
index
)
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
diagram
.
generate
(
stride
/
2
)
;
create
particle
group
callback
.
system
=
this
;
create
particle
group
callback
.
def
=
group
def
;
create
particle
group
callback
.
first
index
=
first
index
;
diagram
.
get
nodes
(
create
particle
group
callback
)
;
}
if
(
(
group
def
.
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
)
;
}
return
group
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
stride
=
get
particle
stride
(
)
;
final
transform
identity
=
temp
transform
;
identity
.
set
identity
(
)
;
transform
transform
=
temp
transform
2
;
transform
.
set
identity
(
)
;
int
first
index
=
m
count
;
if
(
group
def
.
shape
!=
null
)
{
final
particle
def
particle
def
=
temp
particle
def
;
particle
def
.
flags
=
group
def
.
flags
;
particle
def
.
color
=
group
def
.
color
;
particle
def
.
user
data
=
group
def
.
user
data
;
shape
shape
=
group
def
.
shape
;
transform
.
set
(
group
def
.
position
,
group
def
.
angle
)
;
aabb
aabb
=
temp
;
int
child
count
=
shape
.
get
child
count
(
)
;
for
(
int
child
index
=
0
;
child
index
<
child
count
;
child
index
++
)
{
if
(
child
index
==
0
)
{
shape
.
compute
aabb
(
aabb
,
identity
,
child
index
)
;
}
else
{
aabb
child
aabb
=
temp
2
;
shape
.
compute
aabb
(
child
aabb
,
identity
,
child
index
)
;
aabb
.
combine
(
child
aabb
)
;
}
}
final
float
upper
bound
y
=
aabb
.
upper
bound
.
y
;
final
float
upper
bound
x
=
aabb
.
upper
bound
.
x
;
for
(
float
y
=
math
utils
.
floor
(
aabb
.
lower
bound
.
y
/
stride
)
*
stride
;
y
<
upper
bound
y
;
y
+=
stride
)
{
for
(
float
x
=
math
utils
.
floor
(
aabb
.
lower
bound
.
x
/
stride
)
*
stride
;
x
<
upper
bound
x
;
x
+=
stride
)
{
vec
2
p
=
temp
vec
;
p
.
x
=
x
;
p
.
y
=
y
;
if
(
shape
.
test
point
(
identity
,
p
)
)
{
transform
.
mul
to
out
(
transform
,
p
,
p
)
;
particle
def
.
position
.
x
=
p
.
x
;
particle
def
.
position
.
y
=
p
.
y
;
p
.
sub
local
(
group
def
.
position
)
;
vec
2
.
cross
to
out
unsafe
(
group
def
.
angular
velocity
,
p
,
particle
def
.
velocity
)
;
particle
def
.
velocity
.
add
local
(
group
def
.
linear
velocity
)
;
create
particle
(
particle
def
)
;
}
}
}
}
int
last
index
=
m
count
;
particle
group
group
=
new
particle
group
(
)
;
group
.
m
system
=
this
;
group
.
m
first
index
=
first
index
;
group
.
m
last
index
=
last
index
;
group
.
m
group
flags
=
group
def
.
group
flags
;
group
.
m
strength
=
group
def
.
strength
;
group
.
m
user
data
=
group
def
.
user
data
;
group
.
m
transform
.
set
(
transform
)
;
group
.
m
destroy
automatically
=
group
def
.
destroy
automatically
;
group
.
m
prev
=
null
;
group
.
m
next
=
m
group
list
;
if
(
m
group
list
!=
null
)
{
m
group
list
.
m
prev
=
group
;
}
m
group
list
=
group
;
++
m
group
count
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
;
}
update
contacts
(
true
)
;
if
(
(
group
def
.
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
first
index
<=
a
&&
b
<
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
group
def
.
strength
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
group
def
.
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
last
index
-
first
index
)
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
diagram
.
generate
(
stride
/
2
)
;
create
particle
group
callback
.
system
=
this
;
create
particle
group
callback
.
def
=
group
def
;
create
particle
group
callback
.
first
index
=
first
index
;
diagram
.
get
nodes
(
create
particle
group
callback
)
;
}
if
(
(
group
def
.
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
)
;
}
return
group
;
}
<SENTENCE_END/>
group%END% (5.88e-01)
%UNK% (4.88e-02)
get (2.13e-02)
create (1.33e-02)
add (1.14e-02)
set (7.40e-03)
group (7.37e-03)
to (7.18e-03)
index (5.51e-03)
transform (4.35e-03)
<SENTENCE_START>
{
float
stride
=
get
particle
stride
(
)
;
final
transform
identity
=
temp
transform
;
identity
.
set
identity
(
)
;
transform
transform
=
temp
transform
2
;
transform
.
set
identity
(
)
;
int
first
index
=
m
count
;
if
(
group
def
.
shape
!=
null
)
{
final
particle
def
particle
def
=
temp
particle
def
;
particle
def
.
flags
=
group
def
.
flags
;
particle
def
.
color
=
group
def
.
color
;
particle
def
.
user
data
=
group
def
.
user
data
;
shape
shape
=
group
def
.
shape
;
transform
.
set
(
group
def
.
position
,
group
def
.
angle
)
;
aabb
aabb
=
temp
;
int
child
count
=
shape
.
get
child
count
(
)
;
for
(
int
child
index
=
0
;
child
index
<
child
count
;
child
index
++
)
{
if
(
child
index
==
0
)
{
shape
.
compute
aabb
(
aabb
,
identity
,
child
index
)
;
}
else
{
aabb
child
aabb
=
temp
2
;
shape
.
compute
aabb
(
child
aabb
,
identity
,
child
index
)
;
aabb
.
combine
(
child
aabb
)
;
}
}
final
float
upper
bound
y
=
aabb
.
upper
bound
.
y
;
final
float
upper
bound
x
=
aabb
.
upper
bound
.
x
;
for
(
float
y
=
math
utils
.
floor
(
aabb
.
lower
bound
.
y
/
stride
)
*
stride
;
y
<
upper
bound
y
;
y
+=
stride
)
{
for
(
float
x
=
math
utils
.
floor
(
aabb
.
lower
bound
.
x
/
stride
)
*
stride
;
x
<
upper
bound
x
;
x
+=
stride
)
{
vec
2
p
=
temp
vec
;
p
.
x
=
x
;
p
.
y
=
y
;
if
(
shape
.
test
point
(
identity
,
p
)
)
{
transform
.
mul
to
out
(
transform
,
p
,
p
)
;
particle
def
.
position
.
x
=
p
.
x
;
particle
def
.
position
.
y
=
p
.
y
;
p
.
sub
local
(
group
def
.
position
)
;
vec
2
.
cross
to
out
unsafe
(
group
def
.
angular
velocity
,
p
,
particle
def
.
velocity
)
;
particle
def
.
velocity
.
add
local
(
group
def
.
linear
velocity
)
;
create
particle
(
particle
def
)
;
}
}
}
}
int
last
index
=
m
count
;
particle
group
group
=
new
particle
group
(
)
;
group
.
m
system
=
this
;
group
.
m
first
index
=
first
index
;
group
.
m
last
index
=
last
index
;
group
.
m
group
flags
=
group
def
.
group
flags
;
group
.
m
strength
=
group
def
.
strength
;
group
.
m
user
data
=
group
def
.
user
data
;
group
.
m
transform
.
set
(
transform
)
;
group
.
m
destroy
automatically
=
group
def
.
destroy
automatically
;
group
.
m
prev
=
null
;
group
.
m
next
=
m
group
list
;
if
(
m
group
list
!=
null
)
{
m
group
list
.
m
prev
=
group
;
}
m
group
list
=
group
;
++
m
group
count
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
;
}
update
contacts
(
true
)
;
if
(
(
group
def
.
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
first
index
<=
a
&&
b
<
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
group
def
.
strength
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
group
def
.
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
last
index
-
first
index
)
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
diagram
.
generate
(
stride
/
2
)
;
create
particle
group
callback
.
system
=
this
;
create
particle
group
callback
.
def
=
group
def
;
create
particle
group
callback
.
first
index
=
first
index
;
diagram
.
get
nodes
(
create
particle
group
callback
)
;
}
if
(
(
group
def
.
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
)
;
}
return
group
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
stride
=
get
particle
stride
(
)
;
final
transform
identity
=
temp
transform
;
identity
.
set
identity
(
)
;
transform
transform
=
temp
transform
2
;
transform
.
set
identity
(
)
;
int
first
index
=
m
count
;
if
(
group
def
.
shape
!=
null
)
{
final
particle
def
particle
def
=
temp
particle
def
;
particle
def
.
flags
=
group
def
.
flags
;
particle
def
.
color
=
group
def
.
color
;
particle
def
.
user
data
=
group
def
.
user
data
;
shape
shape
=
group
def
.
shape
;
transform
.
set
(
group
def
.
position
,
group
def
.
angle
)
;
aabb
aabb
=
temp
;
int
child
count
=
shape
.
get
child
count
(
)
;
for
(
int
child
index
=
0
;
child
index
<
child
count
;
child
index
++
)
{
if
(
child
index
==
0
)
{
shape
.
compute
aabb
(
aabb
,
identity
,
child
index
)
;
}
else
{
aabb
child
aabb
=
temp
2
;
shape
.
compute
aabb
(
child
aabb
,
identity
,
child
index
)
;
aabb
.
combine
(
child
aabb
)
;
}
}
final
float
upper
bound
y
=
aabb
.
upper
bound
.
y
;
final
float
upper
bound
x
=
aabb
.
upper
bound
.
x
;
for
(
float
y
=
math
utils
.
floor
(
aabb
.
lower
bound
.
y
/
stride
)
*
stride
;
y
<
upper
bound
y
;
y
+=
stride
)
{
for
(
float
x
=
math
utils
.
floor
(
aabb
.
lower
bound
.
x
/
stride
)
*
stride
;
x
<
upper
bound
x
;
x
+=
stride
)
{
vec
2
p
=
temp
vec
;
p
.
x
=
x
;
p
.
y
=
y
;
if
(
shape
.
test
point
(
identity
,
p
)
)
{
transform
.
mul
to
out
(
transform
,
p
,
p
)
;
particle
def
.
position
.
x
=
p
.
x
;
particle
def
.
position
.
y
=
p
.
y
;
p
.
sub
local
(
group
def
.
position
)
;
vec
2
.
cross
to
out
unsafe
(
group
def
.
angular
velocity
,
p
,
particle
def
.
velocity
)
;
particle
def
.
velocity
.
add
local
(
group
def
.
linear
velocity
)
;
create
particle
(
particle
def
)
;
}
}
}
}
int
last
index
=
m
count
;
particle
group
group
=
new
particle
group
(
)
;
group
.
m
system
=
this
;
group
.
m
first
index
=
first
index
;
group
.
m
last
index
=
last
index
;
group
.
m
group
flags
=
group
def
.
group
flags
;
group
.
m
strength
=
group
def
.
strength
;
group
.
m
user
data
=
group
def
.
user
data
;
group
.
m
transform
.
set
(
transform
)
;
group
.
m
destroy
automatically
=
group
def
.
destroy
automatically
;
group
.
m
prev
=
null
;
group
.
m
next
=
m
group
list
;
if
(
m
group
list
!=
null
)
{
m
group
list
.
m
prev
=
group
;
}
m
group
list
=
group
;
++
m
group
count
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
;
}
update
contacts
(
true
)
;
if
(
(
group
def
.
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
first
index
<=
a
&&
b
<
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
group
def
.
strength
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
group
def
.
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
last
index
-
first
index
)
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
diagram
.
generate
(
stride
/
2
)
;
create
particle
group
callback
.
system
=
this
;
create
particle
group
callback
.
def
=
group
def
;
create
particle
group
callback
.
first
index
=
first
index
;
diagram
.
get
nodes
(
create
particle
group
callback
)
;
}
if
(
(
group
def
.
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
)
;
}
return
group
;
}
<SENTENCE_END/>
%END%%END% (6.79e-01)
%UNK% (4.41e-02)
get (1.72e-02)
create (1.07e-02)
add (9.24e-03)
to (6.67e-03)
set (5.61e-03)
index (3.54e-03)
update (3.35e-03)
transform (3.29e-03)
<SENTENCE_START>
{
float
stride
=
get
particle
stride
(
)
;
final
transform
identity
=
temp
transform
;
identity
.
set
identity
(
)
;
transform
transform
=
temp
transform
2
;
transform
.
set
identity
(
)
;
int
first
index
=
m
count
;
if
(
group
def
.
shape
!=
null
)
{
final
particle
def
particle
def
=
temp
particle
def
;
particle
def
.
flags
=
group
def
.
flags
;
particle
def
.
color
=
group
def
.
color
;
particle
def
.
user
data
=
group
def
.
user
data
;
shape
shape
=
group
def
.
shape
;
transform
.
set
(
group
def
.
position
,
group
def
.
angle
)
;
aabb
aabb
=
temp
;
int
child
count
=
shape
.
get
child
count
(
)
;
for
(
int
child
index
=
0
;
child
index
<
child
count
;
child
index
++
)
{
if
(
child
index
==
0
)
{
shape
.
compute
aabb
(
aabb
,
identity
,
child
index
)
;
}
else
{
aabb
child
aabb
=
temp
2
;
shape
.
compute
aabb
(
child
aabb
,
identity
,
child
index
)
;
aabb
.
combine
(
child
aabb
)
;
}
}
final
float
upper
bound
y
=
aabb
.
upper
bound
.
y
;
final
float
upper
bound
x
=
aabb
.
upper
bound
.
x
;
for
(
float
y
=
math
utils
.
floor
(
aabb
.
lower
bound
.
y
/
stride
)
*
stride
;
y
<
upper
bound
y
;
y
+=
stride
)
{
for
(
float
x
=
math
utils
.
floor
(
aabb
.
lower
bound
.
x
/
stride
)
*
stride
;
x
<
upper
bound
x
;
x
+=
stride
)
{
vec
2
p
=
temp
vec
;
p
.
x
=
x
;
p
.
y
=
y
;
if
(
shape
.
test
point
(
identity
,
p
)
)
{
transform
.
mul
to
out
(
transform
,
p
,
p
)
;
particle
def
.
position
.
x
=
p
.
x
;
particle
def
.
position
.
y
=
p
.
y
;
p
.
sub
local
(
group
def
.
position
)
;
vec
2
.
cross
to
out
unsafe
(
group
def
.
angular
velocity
,
p
,
particle
def
.
velocity
)
;
particle
def
.
velocity
.
add
local
(
group
def
.
linear
velocity
)
;
create
particle
(
particle
def
)
;
}
}
}
}
int
last
index
=
m
count
;
particle
group
group
=
new
particle
group
(
)
;
group
.
m
system
=
this
;
group
.
m
first
index
=
first
index
;
group
.
m
last
index
=
last
index
;
group
.
m
group
flags
=
group
def
.
group
flags
;
group
.
m
strength
=
group
def
.
strength
;
group
.
m
user
data
=
group
def
.
user
data
;
group
.
m
transform
.
set
(
transform
)
;
group
.
m
destroy
automatically
=
group
def
.
destroy
automatically
;
group
.
m
prev
=
null
;
group
.
m
next
=
m
group
list
;
if
(
m
group
list
!=
null
)
{
m
group
list
.
m
prev
=
group
;
}
m
group
list
=
group
;
++
m
group
count
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
;
}
update
contacts
(
true
)
;
if
(
(
group
def
.
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
first
index
<=
a
&&
b
<
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
group
def
.
strength
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
group
def
.
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
last
index
-
first
index
)
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
diagram
.
generate
(
stride
/
2
)
;
create
particle
group
callback
.
system
=
this
;
create
particle
group
callback
.
def
=
group
def
;
create
particle
group
callback
.
first
index
=
first
index
;
diagram
.
get
nodes
(
create
particle
group
callback
)
;
}
if
(
(
group
def
.
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
)
;
}
return
group
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
stride
=
get
particle
stride
(
)
;
final
transform
identity
=
temp
transform
;
identity
.
set
identity
(
)
;
transform
transform
=
temp
transform
2
;
transform
.
set
identity
(
)
;
int
first
index
=
m
count
;
if
(
group
def
.
shape
!=
null
)
{
final
particle
def
particle
def
=
temp
particle
def
;
particle
def
.
flags
=
group
def
.
flags
;
particle
def
.
color
=
group
def
.
color
;
particle
def
.
user
data
=
group
def
.
user
data
;
shape
shape
=
group
def
.
shape
;
transform
.
set
(
group
def
.
position
,
group
def
.
angle
)
;
aabb
aabb
=
temp
;
int
child
count
=
shape
.
get
child
count
(
)
;
for
(
int
child
index
=
0
;
child
index
<
child
count
;
child
index
++
)
{
if
(
child
index
==
0
)
{
shape
.
compute
aabb
(
aabb
,
identity
,
child
index
)
;
}
else
{
aabb
child
aabb
=
temp
2
;
shape
.
compute
aabb
(
child
aabb
,
identity
,
child
index
)
;
aabb
.
combine
(
child
aabb
)
;
}
}
final
float
upper
bound
y
=
aabb
.
upper
bound
.
y
;
final
float
upper
bound
x
=
aabb
.
upper
bound
.
x
;
for
(
float
y
=
math
utils
.
floor
(
aabb
.
lower
bound
.
y
/
stride
)
*
stride
;
y
<
upper
bound
y
;
y
+=
stride
)
{
for
(
float
x
=
math
utils
.
floor
(
aabb
.
lower
bound
.
x
/
stride
)
*
stride
;
x
<
upper
bound
x
;
x
+=
stride
)
{
vec
2
p
=
temp
vec
;
p
.
x
=
x
;
p
.
y
=
y
;
if
(
shape
.
test
point
(
identity
,
p
)
)
{
transform
.
mul
to
out
(
transform
,
p
,
p
)
;
particle
def
.
position
.
x
=
p
.
x
;
particle
def
.
position
.
y
=
p
.
y
;
p
.
sub
local
(
group
def
.
position
)
;
vec
2
.
cross
to
out
unsafe
(
group
def
.
angular
velocity
,
p
,
particle
def
.
velocity
)
;
particle
def
.
velocity
.
add
local
(
group
def
.
linear
velocity
)
;
create
particle
(
particle
def
)
;
}
}
}
}
int
last
index
=
m
count
;
particle
group
group
=
new
particle
group
(
)
;
group
.
m
system
=
this
;
group
.
m
first
index
=
first
index
;
group
.
m
last
index
=
last
index
;
group
.
m
group
flags
=
group
def
.
group
flags
;
group
.
m
strength
=
group
def
.
strength
;
group
.
m
user
data
=
group
def
.
user
data
;
group
.
m
transform
.
set
(
transform
)
;
group
.
m
destroy
automatically
=
group
def
.
destroy
automatically
;
group
.
m
prev
=
null
;
group
.
m
next
=
m
group
list
;
if
(
m
group
list
!=
null
)
{
m
group
list
.
m
prev
=
group
;
}
m
group
list
=
group
;
++
m
group
count
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
;
}
update
contacts
(
true
)
;
if
(
(
group
def
.
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
first
index
<=
a
&&
b
<
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
group
def
.
strength
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
group
def
.
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
last
index
-
first
index
)
;
for
(
int
i
=
first
index
;
i
<
last
index
;
i
++
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
diagram
.
generate
(
stride
/
2
)
;
create
particle
group
callback
.
system
=
this
;
create
particle
group
callback
.
def
=
group
def
;
create
particle
group
callback
.
first
index
=
first
index
;
diagram
.
get
nodes
(
create
particle
group
callback
)
;
}
if
(
(
group
def
.
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
)
;
}
return
group
;
}
<SENTENCE_END/>
join,particle,groupsjoinget (2.89e-01)
%UNK% (9.33e-02)
add (5.37e-02)
set (3.60e-02)
%END% (3.00e-02)
create (1.68e-02)
compute (1.31e-02)
init (1.13e-02)
to (9.88e-03)
find (9.40e-03)
<SENTENCE_START>
{
assert
(
group
a
!=
group
b
)
;
rotate
buffer
(
group
b
.
m
first
index
,
group
b
.
m
last
index
,
m
count
)
;
assert
(
group
b
.
m
last
index
==
m
count
)
;
rotate
buffer
(
group
a
.
m
first
index
,
group
a
.
m
last
index
,
group
b
.
m
first
index
)
;
assert
(
group
a
.
m
last
index
==
group
b
.
m
first
index
)
;
int
particle
flags
=
0
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
update
contacts
(
true
)
;
if
(
(
particle
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
group
a
.
m
first
index
<=
a
&&
a
<
group
a
.
m
last
index
&&
group
b
.
m
first
index
<=
b
&&
b
<
group
b
.
m
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
math
utils
.
min
(
group
a
.
m
strength
,
group
b
.
m
strength
)
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
particle
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
group
b
.
m
last
index
-
group
a
.
m
first
index
)
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
zombie
particle
)
==
0
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
}
diagram
.
generate
(
get
particle
stride
(
)
/
2
)
;
join
particle
groups
callback
callback
=
new
join
particle
groups
callback
(
)
;
callback
.
system
=
this
;
callback
.
group
a
=
group
a
;
callback
.
group
b
=
group
b
;
diagram
.
get
nodes
(
callback
)
;
}
for
(
int
i
=
group
b
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
a
;
}
int
group
flags
=
group
a
.
m
group
flags
|
group
b
.
m
group
flags
;
group
a
.
m
group
flags
=
group
flags
;
group
a
.
m
last
index
=
group
b
.
m
last
index
;
group
b
.
m
first
index
=
group
b
.
m
last
index
;
destroy
particle
group
(
group
b
)
;
if
(
(
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
a
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
group
a
!=
group
b
)
;
rotate
buffer
(
group
b
.
m
first
index
,
group
b
.
m
last
index
,
m
count
)
;
assert
(
group
b
.
m
last
index
==
m
count
)
;
rotate
buffer
(
group
a
.
m
first
index
,
group
a
.
m
last
index
,
group
b
.
m
first
index
)
;
assert
(
group
a
.
m
last
index
==
group
b
.
m
first
index
)
;
int
particle
flags
=
0
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
update
contacts
(
true
)
;
if
(
(
particle
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
group
a
.
m
first
index
<=
a
&&
a
<
group
a
.
m
last
index
&&
group
b
.
m
first
index
<=
b
&&
b
<
group
b
.
m
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
math
utils
.
min
(
group
a
.
m
strength
,
group
b
.
m
strength
)
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
particle
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
group
b
.
m
last
index
-
group
a
.
m
first
index
)
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
zombie
particle
)
==
0
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
}
diagram
.
generate
(
get
particle
stride
(
)
/
2
)
;
join
particle
groups
callback
callback
=
new
join
particle
groups
callback
(
)
;
callback
.
system
=
this
;
callback
.
group
a
=
group
a
;
callback
.
group
b
=
group
b
;
diagram
.
get
nodes
(
callback
)
;
}
for
(
int
i
=
group
b
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
a
;
}
int
group
flags
=
group
a
.
m
group
flags
|
group
b
.
m
group
flags
;
group
a
.
m
group
flags
=
group
flags
;
group
a
.
m
last
index
=
group
b
.
m
last
index
;
group
b
.
m
first
index
=
group
b
.
m
last
index
;
destroy
particle
group
(
group
b
)
;
if
(
(
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
a
)
;
}
}
<SENTENCE_END/>
particle%END% (2.98e-01)
get (8.93e-02)
%UNK% (8.07e-02)
add (1.82e-02)
group (1.81e-02)
index (1.32e-02)
to (1.11e-02)
m (1.04e-02)
pair (9.78e-03)
particle (9.08e-03)
<SENTENCE_START>
{
assert
(
group
a
!=
group
b
)
;
rotate
buffer
(
group
b
.
m
first
index
,
group
b
.
m
last
index
,
m
count
)
;
assert
(
group
b
.
m
last
index
==
m
count
)
;
rotate
buffer
(
group
a
.
m
first
index
,
group
a
.
m
last
index
,
group
b
.
m
first
index
)
;
assert
(
group
a
.
m
last
index
==
group
b
.
m
first
index
)
;
int
particle
flags
=
0
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
update
contacts
(
true
)
;
if
(
(
particle
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
group
a
.
m
first
index
<=
a
&&
a
<
group
a
.
m
last
index
&&
group
b
.
m
first
index
<=
b
&&
b
<
group
b
.
m
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
math
utils
.
min
(
group
a
.
m
strength
,
group
b
.
m
strength
)
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
particle
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
group
b
.
m
last
index
-
group
a
.
m
first
index
)
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
zombie
particle
)
==
0
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
}
diagram
.
generate
(
get
particle
stride
(
)
/
2
)
;
join
particle
groups
callback
callback
=
new
join
particle
groups
callback
(
)
;
callback
.
system
=
this
;
callback
.
group
a
=
group
a
;
callback
.
group
b
=
group
b
;
diagram
.
get
nodes
(
callback
)
;
}
for
(
int
i
=
group
b
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
a
;
}
int
group
flags
=
group
a
.
m
group
flags
|
group
b
.
m
group
flags
;
group
a
.
m
group
flags
=
group
flags
;
group
a
.
m
last
index
=
group
b
.
m
last
index
;
group
b
.
m
first
index
=
group
b
.
m
last
index
;
destroy
particle
group
(
group
b
)
;
if
(
(
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
a
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
group
a
!=
group
b
)
;
rotate
buffer
(
group
b
.
m
first
index
,
group
b
.
m
last
index
,
m
count
)
;
assert
(
group
b
.
m
last
index
==
m
count
)
;
rotate
buffer
(
group
a
.
m
first
index
,
group
a
.
m
last
index
,
group
b
.
m
first
index
)
;
assert
(
group
a
.
m
last
index
==
group
b
.
m
first
index
)
;
int
particle
flags
=
0
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
update
contacts
(
true
)
;
if
(
(
particle
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
group
a
.
m
first
index
<=
a
&&
a
<
group
a
.
m
last
index
&&
group
b
.
m
first
index
<=
b
&&
b
<
group
b
.
m
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
math
utils
.
min
(
group
a
.
m
strength
,
group
b
.
m
strength
)
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
particle
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
group
b
.
m
last
index
-
group
a
.
m
first
index
)
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
zombie
particle
)
==
0
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
}
diagram
.
generate
(
get
particle
stride
(
)
/
2
)
;
join
particle
groups
callback
callback
=
new
join
particle
groups
callback
(
)
;
callback
.
system
=
this
;
callback
.
group
a
=
group
a
;
callback
.
group
b
=
group
b
;
diagram
.
get
nodes
(
callback
)
;
}
for
(
int
i
=
group
b
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
a
;
}
int
group
flags
=
group
a
.
m
group
flags
|
group
b
.
m
group
flags
;
group
a
.
m
group
flags
=
group
flags
;
group
a
.
m
last
index
=
group
b
.
m
last
index
;
group
b
.
m
first
index
=
group
b
.
m
last
index
;
destroy
particle
group
(
group
b
)
;
if
(
(
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
a
)
;
}
}
<SENTENCE_END/>
groups%END% (4.65e-01)
%UNK% (6.72e-02)
get (5.22e-02)
group (1.22e-02)
add (1.18e-02)
index (1.12e-02)
to (9.82e-03)
buffer (7.25e-03)
balance (6.95e-03)
m (6.93e-03)
<SENTENCE_START>
{
assert
(
group
a
!=
group
b
)
;
rotate
buffer
(
group
b
.
m
first
index
,
group
b
.
m
last
index
,
m
count
)
;
assert
(
group
b
.
m
last
index
==
m
count
)
;
rotate
buffer
(
group
a
.
m
first
index
,
group
a
.
m
last
index
,
group
b
.
m
first
index
)
;
assert
(
group
a
.
m
last
index
==
group
b
.
m
first
index
)
;
int
particle
flags
=
0
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
update
contacts
(
true
)
;
if
(
(
particle
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
group
a
.
m
first
index
<=
a
&&
a
<
group
a
.
m
last
index
&&
group
b
.
m
first
index
<=
b
&&
b
<
group
b
.
m
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
math
utils
.
min
(
group
a
.
m
strength
,
group
b
.
m
strength
)
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
particle
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
group
b
.
m
last
index
-
group
a
.
m
first
index
)
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
zombie
particle
)
==
0
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
}
diagram
.
generate
(
get
particle
stride
(
)
/
2
)
;
join
particle
groups
callback
callback
=
new
join
particle
groups
callback
(
)
;
callback
.
system
=
this
;
callback
.
group
a
=
group
a
;
callback
.
group
b
=
group
b
;
diagram
.
get
nodes
(
callback
)
;
}
for
(
int
i
=
group
b
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
a
;
}
int
group
flags
=
group
a
.
m
group
flags
|
group
b
.
m
group
flags
;
group
a
.
m
group
flags
=
group
flags
;
group
a
.
m
last
index
=
group
b
.
m
last
index
;
group
b
.
m
first
index
=
group
b
.
m
last
index
;
destroy
particle
group
(
group
b
)
;
if
(
(
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
a
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
group
a
!=
group
b
)
;
rotate
buffer
(
group
b
.
m
first
index
,
group
b
.
m
last
index
,
m
count
)
;
assert
(
group
b
.
m
last
index
==
m
count
)
;
rotate
buffer
(
group
a
.
m
first
index
,
group
a
.
m
last
index
,
group
b
.
m
first
index
)
;
assert
(
group
a
.
m
last
index
==
group
b
.
m
first
index
)
;
int
particle
flags
=
0
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
update
contacts
(
true
)
;
if
(
(
particle
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
group
a
.
m
first
index
<=
a
&&
a
<
group
a
.
m
last
index
&&
group
b
.
m
first
index
<=
b
&&
b
<
group
b
.
m
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
math
utils
.
min
(
group
a
.
m
strength
,
group
b
.
m
strength
)
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
particle
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
group
b
.
m
last
index
-
group
a
.
m
first
index
)
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
zombie
particle
)
==
0
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
}
diagram
.
generate
(
get
particle
stride
(
)
/
2
)
;
join
particle
groups
callback
callback
=
new
join
particle
groups
callback
(
)
;
callback
.
system
=
this
;
callback
.
group
a
=
group
a
;
callback
.
group
b
=
group
b
;
diagram
.
get
nodes
(
callback
)
;
}
for
(
int
i
=
group
b
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
a
;
}
int
group
flags
=
group
a
.
m
group
flags
|
group
b
.
m
group
flags
;
group
a
.
m
group
flags
=
group
flags
;
group
a
.
m
last
index
=
group
b
.
m
last
index
;
group
b
.
m
first
index
=
group
b
.
m
last
index
;
destroy
particle
group
(
group
b
)
;
if
(
(
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
a
)
;
}
}
<SENTENCE_END/>
%END%%END% (5.70e-01)
%UNK% (6.40e-02)
get (4.26e-02)
add (9.76e-03)
to (9.48e-03)
index (8.05e-03)
balance (6.63e-03)
and (3.93e-03)
group (3.65e-03)
solve (3.55e-03)
<SENTENCE_START>
{
assert
(
group
a
!=
group
b
)
;
rotate
buffer
(
group
b
.
m
first
index
,
group
b
.
m
last
index
,
m
count
)
;
assert
(
group
b
.
m
last
index
==
m
count
)
;
rotate
buffer
(
group
a
.
m
first
index
,
group
a
.
m
last
index
,
group
b
.
m
first
index
)
;
assert
(
group
a
.
m
last
index
==
group
b
.
m
first
index
)
;
int
particle
flags
=
0
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
update
contacts
(
true
)
;
if
(
(
particle
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
group
a
.
m
first
index
<=
a
&&
a
<
group
a
.
m
last
index
&&
group
b
.
m
first
index
<=
b
&&
b
<
group
b
.
m
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
math
utils
.
min
(
group
a
.
m
strength
,
group
b
.
m
strength
)
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
particle
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
group
b
.
m
last
index
-
group
a
.
m
first
index
)
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
zombie
particle
)
==
0
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
}
diagram
.
generate
(
get
particle
stride
(
)
/
2
)
;
join
particle
groups
callback
callback
=
new
join
particle
groups
callback
(
)
;
callback
.
system
=
this
;
callback
.
group
a
=
group
a
;
callback
.
group
b
=
group
b
;
diagram
.
get
nodes
(
callback
)
;
}
for
(
int
i
=
group
b
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
a
;
}
int
group
flags
=
group
a
.
m
group
flags
|
group
b
.
m
group
flags
;
group
a
.
m
group
flags
=
group
flags
;
group
a
.
m
last
index
=
group
b
.
m
last
index
;
group
b
.
m
first
index
=
group
b
.
m
last
index
;
destroy
particle
group
(
group
b
)
;
if
(
(
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
a
)
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
group
a
!=
group
b
)
;
rotate
buffer
(
group
b
.
m
first
index
,
group
b
.
m
last
index
,
m
count
)
;
assert
(
group
b
.
m
last
index
==
m
count
)
;
rotate
buffer
(
group
a
.
m
first
index
,
group
a
.
m
last
index
,
group
b
.
m
first
index
)
;
assert
(
group
a
.
m
last
index
==
group
b
.
m
first
index
)
;
int
particle
flags
=
0
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
update
contacts
(
true
)
;
if
(
(
particle
flags
&
k
pair
flags
)
!=
0
)
{
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>
b
)
{
int
temp
=
a
;
a
=
b
;
b
=
temp
;
}
if
(
group
a
.
m
first
index
<=
a
&&
a
<
group
a
.
m
last
index
&&
group
b
.
m
first
index
<=
b
&&
b
<
group
b
.
m
last
index
)
{
if
(
m
pair
count
>=
m
pair
capacity
)
{
int
old
capacity
=
m
pair
capacity
;
int
new
capacity
=
m
pair
count
!=
0
?
2
*
m
pair
count
:
settings
.
min
particle
buffer
capacity
;
m
pair
buffer
=
buffer
utils
.
reallocate
buffer
(
pair
.
class
,
m
pair
buffer
,
old
capacity
,
new
capacity
)
;
m
pair
capacity
=
new
capacity
;
}
pair
pair
=
m
pair
buffer
[
m
pair
count
]
;
pair
.
index
a
=
a
;
pair
.
index
b
=
b
;
pair
.
flags
=
contact
.
flags
;
pair
.
strength
=
math
utils
.
min
(
group
a
.
m
strength
,
group
b
.
m
strength
)
;
pair
.
distance
=
math
utils
.
distance
(
m
position
buffer
.
data
[
a
]
,
m
position
buffer
.
data
[
b
]
)
;
m
pair
count
++
;
}
}
}
if
(
(
particle
flags
&
k
triad
flags
)
!=
0
)
{
voronoi
diagram
diagram
=
new
voronoi
diagram
(
group
b
.
m
last
index
-
group
a
.
m
first
index
)
;
for
(
int
i
=
group
a
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
zombie
particle
)
==
0
)
{
diagram
.
add
generator
(
m
position
buffer
.
data
[
i
]
,
i
)
;
}
}
diagram
.
generate
(
get
particle
stride
(
)
/
2
)
;
join
particle
groups
callback
callback
=
new
join
particle
groups
callback
(
)
;
callback
.
system
=
this
;
callback
.
group
a
=
group
a
;
callback
.
group
b
=
group
b
;
diagram
.
get
nodes
(
callback
)
;
}
for
(
int
i
=
group
b
.
m
first
index
;
i
<
group
b
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
group
a
;
}
int
group
flags
=
group
a
.
m
group
flags
|
group
b
.
m
group
flags
;
group
a
.
m
group
flags
=
group
flags
;
group
a
.
m
last
index
=
group
b
.
m
last
index
;
group
b
.
m
first
index
=
group
b
.
m
last
index
;
destroy
particle
group
(
group
b
)
;
if
(
(
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
compute
depth
for
group
(
group
a
)
;
}
}
<SENTENCE_END/>
destroy,particle,groupdestroyget (2.58e-01)
set (1.38e-01)
%UNK% (8.31e-02)
add (6.21e-02)
find (4.22e-02)
compute (2.51e-02)
report (1.94e-02)
touch (1.80e-02)
update (1.80e-02)
clear (1.73e-02)
<SENTENCE_START>
{
assert
(
m
group
count
>
0
)
;
assert
(
group
!=
null
)
;
if
(
m
world
.
get
particle
destruction
listener
(
)
!=
null
)
{
m
world
.
get
particle
destruction
listener
(
)
.
say
goodbye
(
group
)
;
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
null
;
}
if
(
group
.
m
prev
!=
null
)
{
group
.
m
prev
.
m
next
=
group
.
m
next
;
}
if
(
group
.
m
next
!=
null
)
{
group
.
m
next
.
m
prev
=
group
.
m
prev
;
}
if
(
group
==
m
group
list
)
{
m
group
list
=
group
.
m
next
;
}
--
m
group
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
m
group
count
>
0
)
;
assert
(
group
!=
null
)
;
if
(
m
world
.
get
particle
destruction
listener
(
)
!=
null
)
{
m
world
.
get
particle
destruction
listener
(
)
.
say
goodbye
(
group
)
;
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
null
;
}
if
(
group
.
m
prev
!=
null
)
{
group
.
m
prev
.
m
next
=
group
.
m
next
;
}
if
(
group
.
m
next
!=
null
)
{
group
.
m
next
.
m
prev
=
group
.
m
prev
;
}
if
(
group
==
m
group
list
)
{
m
group
list
=
group
.
m
next
;
}
--
m
group
count
;
}
<SENTENCE_END/>
particle%END% (2.22e-01)
%UNK% (9.84e-02)
get (8.51e-02)
group (4.91e-02)
prev (2.46e-02)
particle (2.32e-02)
m (2.11e-02)
find (1.34e-02)
next (1.20e-02)
update (1.16e-02)
<SENTENCE_START>
{
assert
(
m
group
count
>
0
)
;
assert
(
group
!=
null
)
;
if
(
m
world
.
get
particle
destruction
listener
(
)
!=
null
)
{
m
world
.
get
particle
destruction
listener
(
)
.
say
goodbye
(
group
)
;
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
null
;
}
if
(
group
.
m
prev
!=
null
)
{
group
.
m
prev
.
m
next
=
group
.
m
next
;
}
if
(
group
.
m
next
!=
null
)
{
group
.
m
next
.
m
prev
=
group
.
m
prev
;
}
if
(
group
==
m
group
list
)
{
m
group
list
=
group
.
m
next
;
}
--
m
group
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
m
group
count
>
0
)
;
assert
(
group
!=
null
)
;
if
(
m
world
.
get
particle
destruction
listener
(
)
!=
null
)
{
m
world
.
get
particle
destruction
listener
(
)
.
say
goodbye
(
group
)
;
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
null
;
}
if
(
group
.
m
prev
!=
null
)
{
group
.
m
prev
.
m
next
=
group
.
m
next
;
}
if
(
group
.
m
next
!=
null
)
{
group
.
m
next
.
m
prev
=
group
.
m
prev
;
}
if
(
group
==
m
group
list
)
{
m
group
list
=
group
.
m
next
;
}
--
m
group
count
;
}
<SENTENCE_END/>
group%END% (6.18e-01)
destruction (3.58e-02)
group (3.54e-02)
%UNK% (2.15e-02)
particle (1.58e-02)
count (1.56e-02)
m (1.55e-02)
listener (1.42e-02)
prev (1.13e-02)
get (8.05e-03)
<SENTENCE_START>
{
assert
(
m
group
count
>
0
)
;
assert
(
group
!=
null
)
;
if
(
m
world
.
get
particle
destruction
listener
(
)
!=
null
)
{
m
world
.
get
particle
destruction
listener
(
)
.
say
goodbye
(
group
)
;
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
null
;
}
if
(
group
.
m
prev
!=
null
)
{
group
.
m
prev
.
m
next
=
group
.
m
next
;
}
if
(
group
.
m
next
!=
null
)
{
group
.
m
next
.
m
prev
=
group
.
m
prev
;
}
if
(
group
==
m
group
list
)
{
m
group
list
=
group
.
m
next
;
}
--
m
group
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
m
group
count
>
0
)
;
assert
(
group
!=
null
)
;
if
(
m
world
.
get
particle
destruction
listener
(
)
!=
null
)
{
m
world
.
get
particle
destruction
listener
(
)
.
say
goodbye
(
group
)
;
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
null
;
}
if
(
group
.
m
prev
!=
null
)
{
group
.
m
prev
.
m
next
=
group
.
m
next
;
}
if
(
group
.
m
next
!=
null
)
{
group
.
m
next
.
m
prev
=
group
.
m
prev
;
}
if
(
group
==
m
group
list
)
{
m
group
list
=
group
.
m
next
;
}
--
m
group
count
;
}
<SENTENCE_END/>
%END%%END% (8.08e-01)
%UNK% (1.70e-02)
group (1.05e-02)
m (7.06e-03)
count (6.45e-03)
destruction (5.66e-03)
listener (4.34e-03)
get (4.27e-03)
down (3.61e-03)
prev (3.19e-03)
<SENTENCE_START>
{
assert
(
m
group
count
>
0
)
;
assert
(
group
!=
null
)
;
if
(
m
world
.
get
particle
destruction
listener
(
)
!=
null
)
{
m
world
.
get
particle
destruction
listener
(
)
.
say
goodbye
(
group
)
;
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
null
;
}
if
(
group
.
m
prev
!=
null
)
{
group
.
m
prev
.
m
next
=
group
.
m
next
;
}
if
(
group
.
m
next
!=
null
)
{
group
.
m
next
.
m
prev
=
group
.
m
prev
;
}
if
(
group
==
m
group
list
)
{
m
group
list
=
group
.
m
next
;
}
--
m
group
count
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
m
group
count
>
0
)
;
assert
(
group
!=
null
)
;
if
(
m
world
.
get
particle
destruction
listener
(
)
!=
null
)
{
m
world
.
get
particle
destruction
listener
(
)
.
say
goodbye
(
group
)
;
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
group
buffer
[
i
]
=
null
;
}
if
(
group
.
m
prev
!=
null
)
{
group
.
m
prev
.
m
next
=
group
.
m
next
;
}
if
(
group
.
m
next
!=
null
)
{
group
.
m
next
.
m
prev
=
group
.
m
prev
;
}
if
(
group
==
m
group
list
)
{
m
group
list
=
group
.
m
next
;
}
--
m
group
count
;
}
<SENTENCE_END/>
compute,depth,for,groupcompute%UNK% (1.96e-01)
get (1.12e-01)
set (4.33e-02)
add (2.53e-02)
%END% (2.35e-02)
init (2.12e-02)
reset (1.94e-02)
update (1.77e-02)
index (1.37e-02)
balance (1.21e-02)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
depth%END% (2.15e-01)
%UNK% (1.23e-01)
get (4.17e-02)
index (2.59e-02)
depth (2.00e-02)
particle (1.80e-02)
buffer (1.66e-02)
m (1.31e-02)
contact (1.10e-02)
group (9.23e-03)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
for%END% (3.95e-01)
%UNK% (1.01e-01)
get (2.41e-02)
index (2.25e-02)
buffer (1.59e-02)
contact (9.06e-03)
to (8.00e-03)
m (7.73e-03)
0 (6.71e-03)
count (5.42e-03)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
group%END% (5.05e-01)
%UNK% (9.29e-02)
index (1.95e-02)
get (1.93e-02)
to (8.04e-03)
buffer (6.20e-03)
of (5.18e-03)
value (5.04e-03)
balance (4.85e-03)
0 (4.68e-03)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
%END%%END% (5.24e-01)
%UNK% (8.85e-02)
index (1.89e-02)
get (1.80e-02)
to (7.89e-03)
buffer (5.22e-03)
of (5.18e-03)
value (5.04e-03)
balance (4.59e-03)
0 (4.52e-03)
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
}
m
depth
buffer
=
request
particle
buffer
(
m
depth
buffer
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
m
depth
buffer
[
i
]
=
w
<
0.8f
?
0
:
float
.
max
value
;
}
int
interation
count
=
group
.
get
particle
count
(
)
;
for
(
int
t
=
0
;
t
<
interation
count
;
t
++
)
{
boolean
updated
=
false
;
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
if
(
a
>=
group
.
m
first
index
&&
a
<
group
.
m
last
index
&&
b
>=
group
.
m
first
index
&&
b
<
group
.
m
last
index
)
{
float
r
=
1
-
contact
.
weight
;
float
ap
0
=
m
depth
buffer
[
a
]
;
float
bp
0
=
m
depth
buffer
[
b
]
;
float
ap
1
=
bp
0
+
r
;
float
bp
1
=
ap
0
+
r
;
if
(
ap
0
>
ap
1
)
{
m
depth
buffer
[
a
]
=
ap
1
;
updated
=
true
;
}
if
(
bp
0
>
bp
1
)
{
m
depth
buffer
[
b
]
=
bp
1
;
updated
=
true
;
}
}
}
if
(
!
updated
)
{
break
;
}
}
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
float
p
=
m
depth
buffer
[
i
]
;
if
(
p
<
float
.
max
value
)
{
m
depth
buffer
[
i
]
*=
m
particle
diameter
;
}
else
{
m
depth
buffer
[
i
]
=
0
;
}
}
}
<SENTENCE_END/>
add,contactadd%END% (2.59e-01)
set (1.35e-01)
%UNK% (8.87e-02)
solve (6.18e-02)
add (4.13e-02)
get (3.75e-02)
init (2.67e-02)
create (1.45e-02)
contact (9.72e-03)
clear (9.31e-03)
<SENTENCE_START>
{
assert
(
a
!=
b
)
;
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
float
dx
=
pb
.
x
-
pa
.
x
;
float
dy
=
pb
.
y
-
pa
.
y
;
float
d
2
=
dx
*
dx
+
dy
*
dy
;
if
(
d
2
<
m
squared
diameter
)
{
if
(
m
contact
count
>=
m
contact
capacity
)
{
int
old
capacity
=
m
contact
capacity
;
int
new
capacity
=
m
contact
count
!=
0
?
2
*
m
contact
count
:
settings
.
min
particle
buffer
capacity
;
m
contact
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
contact
.
class
,
m
contact
buffer
,
old
capacity
,
new
capacity
)
;
m
contact
capacity
=
new
capacity
;
}
float
inv
d
=
d
2
!=
0
?
math
utils
.
sqrt
(
1
/
d
2
)
:
float
.
max
value
;
particle
contact
contact
=
m
contact
buffer
[
m
contact
count
]
;
contact
.
index
a
=
a
;
contact
.
index
b
=
b
;
contact
.
flags
=
m
flags
buffer
.
data
[
a
]
|
m
flags
buffer
.
data
[
b
]
;
contact
.
weight
=
1
-
d
2
*
inv
d
*
m
inverse
diameter
;
contact
.
normal
.
x
=
inv
d
*
dx
;
contact
.
normal
.
y
=
inv
d
*
dy
;
m
contact
count
++
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
a
!=
b
)
;
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
float
dx
=
pb
.
x
-
pa
.
x
;
float
dy
=
pb
.
y
-
pa
.
y
;
float
d
2
=
dx
*
dx
+
dy
*
dy
;
if
(
d
2
<
m
squared
diameter
)
{
if
(
m
contact
count
>=
m
contact
capacity
)
{
int
old
capacity
=
m
contact
capacity
;
int
new
capacity
=
m
contact
count
!=
0
?
2
*
m
contact
count
:
settings
.
min
particle
buffer
capacity
;
m
contact
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
contact
.
class
,
m
contact
buffer
,
old
capacity
,
new
capacity
)
;
m
contact
capacity
=
new
capacity
;
}
float
inv
d
=
d
2
!=
0
?
math
utils
.
sqrt
(
1
/
d
2
)
:
float
.
max
value
;
particle
contact
contact
=
m
contact
buffer
[
m
contact
count
]
;
contact
.
index
a
=
a
;
contact
.
index
b
=
b
;
contact
.
flags
=
m
flags
buffer
.
data
[
a
]
|
m
flags
buffer
.
data
[
b
]
;
contact
.
weight
=
1
-
d
2
*
inv
d
*
m
inverse
diameter
;
contact
.
normal
.
x
=
inv
d
*
dx
;
contact
.
normal
.
y
=
inv
d
*
dy
;
m
contact
count
++
;
}
}
<SENTENCE_END/>
contact%END% (6.02e-01)
contact (8.25e-02)
buffer (3.10e-02)
particle (1.87e-02)
m (1.86e-02)
%UNK% (1.46e-02)
capacity (1.42e-02)
reallocate (1.39e-02)
count (7.47e-03)
max (6.27e-03)
<SENTENCE_START>
{
assert
(
a
!=
b
)
;
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
float
dx
=
pb
.
x
-
pa
.
x
;
float
dy
=
pb
.
y
-
pa
.
y
;
float
d
2
=
dx
*
dx
+
dy
*
dy
;
if
(
d
2
<
m
squared
diameter
)
{
if
(
m
contact
count
>=
m
contact
capacity
)
{
int
old
capacity
=
m
contact
capacity
;
int
new
capacity
=
m
contact
count
!=
0
?
2
*
m
contact
count
:
settings
.
min
particle
buffer
capacity
;
m
contact
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
contact
.
class
,
m
contact
buffer
,
old
capacity
,
new
capacity
)
;
m
contact
capacity
=
new
capacity
;
}
float
inv
d
=
d
2
!=
0
?
math
utils
.
sqrt
(
1
/
d
2
)
:
float
.
max
value
;
particle
contact
contact
=
m
contact
buffer
[
m
contact
count
]
;
contact
.
index
a
=
a
;
contact
.
index
b
=
b
;
contact
.
flags
=
m
flags
buffer
.
data
[
a
]
|
m
flags
buffer
.
data
[
b
]
;
contact
.
weight
=
1
-
d
2
*
inv
d
*
m
inverse
diameter
;
contact
.
normal
.
x
=
inv
d
*
dx
;
contact
.
normal
.
y
=
inv
d
*
dy
;
m
contact
count
++
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
a
!=
b
)
;
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
float
dx
=
pb
.
x
-
pa
.
x
;
float
dy
=
pb
.
y
-
pa
.
y
;
float
d
2
=
dx
*
dx
+
dy
*
dy
;
if
(
d
2
<
m
squared
diameter
)
{
if
(
m
contact
count
>=
m
contact
capacity
)
{
int
old
capacity
=
m
contact
capacity
;
int
new
capacity
=
m
contact
count
!=
0
?
2
*
m
contact
count
:
settings
.
min
particle
buffer
capacity
;
m
contact
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
contact
.
class
,
m
contact
buffer
,
old
capacity
,
new
capacity
)
;
m
contact
capacity
=
new
capacity
;
}
float
inv
d
=
d
2
!=
0
?
math
utils
.
sqrt
(
1
/
d
2
)
:
float
.
max
value
;
particle
contact
contact
=
m
contact
buffer
[
m
contact
count
]
;
contact
.
index
a
=
a
;
contact
.
index
b
=
b
;
contact
.
flags
=
m
flags
buffer
.
data
[
a
]
|
m
flags
buffer
.
data
[
b
]
;
contact
.
weight
=
1
-
d
2
*
inv
d
*
m
inverse
diameter
;
contact
.
normal
.
x
=
inv
d
*
dx
;
contact
.
normal
.
y
=
inv
d
*
dy
;
m
contact
count
++
;
}
}
<SENTENCE_END/>
%END%%END% (7.99e-01)
buffer (2.61e-02)
contact (1.74e-02)
%UNK% (1.05e-02)
count (8.79e-03)
particle (7.44e-03)
m (5.69e-03)
capacity (4.55e-03)
2 (4.42e-03)
d (4.00e-03)
<SENTENCE_START>
{
assert
(
a
!=
b
)
;
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
float
dx
=
pb
.
x
-
pa
.
x
;
float
dy
=
pb
.
y
-
pa
.
y
;
float
d
2
=
dx
*
dx
+
dy
*
dy
;
if
(
d
2
<
m
squared
diameter
)
{
if
(
m
contact
count
>=
m
contact
capacity
)
{
int
old
capacity
=
m
contact
capacity
;
int
new
capacity
=
m
contact
count
!=
0
?
2
*
m
contact
count
:
settings
.
min
particle
buffer
capacity
;
m
contact
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
contact
.
class
,
m
contact
buffer
,
old
capacity
,
new
capacity
)
;
m
contact
capacity
=
new
capacity
;
}
float
inv
d
=
d
2
!=
0
?
math
utils
.
sqrt
(
1
/
d
2
)
:
float
.
max
value
;
particle
contact
contact
=
m
contact
buffer
[
m
contact
count
]
;
contact
.
index
a
=
a
;
contact
.
index
b
=
b
;
contact
.
flags
=
m
flags
buffer
.
data
[
a
]
|
m
flags
buffer
.
data
[
b
]
;
contact
.
weight
=
1
-
d
2
*
inv
d
*
m
inverse
diameter
;
contact
.
normal
.
x
=
inv
d
*
dx
;
contact
.
normal
.
y
=
inv
d
*
dy
;
m
contact
count
++
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
assert
(
a
!=
b
)
;
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
float
dx
=
pb
.
x
-
pa
.
x
;
float
dy
=
pb
.
y
-
pa
.
y
;
float
d
2
=
dx
*
dx
+
dy
*
dy
;
if
(
d
2
<
m
squared
diameter
)
{
if
(
m
contact
count
>=
m
contact
capacity
)
{
int
old
capacity
=
m
contact
capacity
;
int
new
capacity
=
m
contact
count
!=
0
?
2
*
m
contact
count
:
settings
.
min
particle
buffer
capacity
;
m
contact
buffer
=
buffer
utils
.
reallocate
buffer
(
particle
contact
.
class
,
m
contact
buffer
,
old
capacity
,
new
capacity
)
;
m
contact
capacity
=
new
capacity
;
}
float
inv
d
=
d
2
!=
0
?
math
utils
.
sqrt
(
1
/
d
2
)
:
float
.
max
value
;
particle
contact
contact
=
m
contact
buffer
[
m
contact
count
]
;
contact
.
index
a
=
a
;
contact
.
index
b
=
b
;
contact
.
flags
=
m
flags
buffer
.
data
[
a
]
|
m
flags
buffer
.
data
[
b
]
;
contact
.
weight
=
1
-
d
2
*
inv
d
*
m
inverse
diameter
;
contact
.
normal
.
x
=
inv
d
*
dx
;
contact
.
normal
.
y
=
inv
d
*
dy
;
m
contact
count
++
;
}
}
<SENTENCE_END/>
update,contactsupdate%UNK% (1.51e-01)
%END% (1.32e-01)
add (6.47e-02)
get (5.98e-02)
set (5.23e-02)
create (2.54e-02)
init (1.58e-02)
reset (1.49e-02)
update (1.21e-02)
to (1.17e-02)
<SENTENCE_START>
{
for
(
int
p
=
0
;
p
<
m
proxy
count
;
p
++
)
{
proxy
proxy
=
m
proxy
buffer
[
p
]
;
int
i
=
proxy
.
index
;
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
proxy
.
tag
=
compute
tag
(
m
inverse
diameter
*
pos
.
x
,
m
inverse
diameter
*
pos
.
y
)
;
}
arrays
.
sort
(
m
proxy
buffer
,
0
,
m
proxy
count
)
;
m
contact
count
=
0
;
int
c
index
=
0
;
for
(
int
i
=
0
;
i
<
m
proxy
count
;
i
++
)
{
proxy
a
=
m
proxy
buffer
[
i
]
;
long
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
0
)
;
for
(
int
j
=
i
+
1
;
j
<
m
proxy
count
;
j
++
)
{
proxy
b
=
m
proxy
buffer
[
j
]
;
if
(
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
long
bottom
left
tag
=
compute
relative
tag
(
a
.
tag
,
-
1
,
1
)
;
for
(
;
c
index
<
m
proxy
count
;
c
index
++
)
{
proxy
c
=
m
proxy
buffer
[
c
index
]
;
if
(
bottom
left
tag
<=
c
.
tag
)
{
break
;
}
}
long
bottom
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
1
)
;
for
(
int
b
index
=
c
index
;
b
index
<
m
proxy
count
;
b
index
++
)
{
proxy
b
=
m
proxy
buffer
[
b
index
]
;
if
(
bottom
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
}
if
(
except
zombie
)
{
int
j
=
m
contact
count
;
for
(
int
i
=
0
;
i
<
j
;
i
++
)
{
if
(
(
m
contact
buffer
[
i
]
.
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
--
j
;
particle
contact
temp
=
m
contact
buffer
[
j
]
;
m
contact
buffer
[
j
]
=
m
contact
buffer
[
i
]
;
m
contact
buffer
[
i
]
=
temp
;
--
i
;
}
}
m
contact
count
=
j
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
p
=
0
;
p
<
m
proxy
count
;
p
++
)
{
proxy
proxy
=
m
proxy
buffer
[
p
]
;
int
i
=
proxy
.
index
;
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
proxy
.
tag
=
compute
tag
(
m
inverse
diameter
*
pos
.
x
,
m
inverse
diameter
*
pos
.
y
)
;
}
arrays
.
sort
(
m
proxy
buffer
,
0
,
m
proxy
count
)
;
m
contact
count
=
0
;
int
c
index
=
0
;
for
(
int
i
=
0
;
i
<
m
proxy
count
;
i
++
)
{
proxy
a
=
m
proxy
buffer
[
i
]
;
long
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
0
)
;
for
(
int
j
=
i
+
1
;
j
<
m
proxy
count
;
j
++
)
{
proxy
b
=
m
proxy
buffer
[
j
]
;
if
(
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
long
bottom
left
tag
=
compute
relative
tag
(
a
.
tag
,
-
1
,
1
)
;
for
(
;
c
index
<
m
proxy
count
;
c
index
++
)
{
proxy
c
=
m
proxy
buffer
[
c
index
]
;
if
(
bottom
left
tag
<=
c
.
tag
)
{
break
;
}
}
long
bottom
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
1
)
;
for
(
int
b
index
=
c
index
;
b
index
<
m
proxy
count
;
b
index
++
)
{
proxy
b
=
m
proxy
buffer
[
b
index
]
;
if
(
bottom
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
}
if
(
except
zombie
)
{
int
j
=
m
contact
count
;
for
(
int
i
=
0
;
i
<
j
;
i
++
)
{
if
(
(
m
contact
buffer
[
i
]
.
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
--
j
;
particle
contact
temp
=
m
contact
buffer
[
j
]
;
m
contact
buffer
[
j
]
=
m
contact
buffer
[
i
]
;
m
contact
buffer
[
i
]
=
temp
;
--
i
;
}
}
m
contact
count
=
j
;
}
}
<SENTENCE_END/>
contacts%END% (7.00e-01)
%UNK% (3.87e-02)
get (8.06e-03)
index (7.18e-03)
to (6.69e-03)
contact (6.05e-03)
proxy (5.49e-03)
add (5.35e-03)
buffer (4.34e-03)
and (4.20e-03)
<SENTENCE_START>
{
for
(
int
p
=
0
;
p
<
m
proxy
count
;
p
++
)
{
proxy
proxy
=
m
proxy
buffer
[
p
]
;
int
i
=
proxy
.
index
;
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
proxy
.
tag
=
compute
tag
(
m
inverse
diameter
*
pos
.
x
,
m
inverse
diameter
*
pos
.
y
)
;
}
arrays
.
sort
(
m
proxy
buffer
,
0
,
m
proxy
count
)
;
m
contact
count
=
0
;
int
c
index
=
0
;
for
(
int
i
=
0
;
i
<
m
proxy
count
;
i
++
)
{
proxy
a
=
m
proxy
buffer
[
i
]
;
long
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
0
)
;
for
(
int
j
=
i
+
1
;
j
<
m
proxy
count
;
j
++
)
{
proxy
b
=
m
proxy
buffer
[
j
]
;
if
(
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
long
bottom
left
tag
=
compute
relative
tag
(
a
.
tag
,
-
1
,
1
)
;
for
(
;
c
index
<
m
proxy
count
;
c
index
++
)
{
proxy
c
=
m
proxy
buffer
[
c
index
]
;
if
(
bottom
left
tag
<=
c
.
tag
)
{
break
;
}
}
long
bottom
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
1
)
;
for
(
int
b
index
=
c
index
;
b
index
<
m
proxy
count
;
b
index
++
)
{
proxy
b
=
m
proxy
buffer
[
b
index
]
;
if
(
bottom
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
}
if
(
except
zombie
)
{
int
j
=
m
contact
count
;
for
(
int
i
=
0
;
i
<
j
;
i
++
)
{
if
(
(
m
contact
buffer
[
i
]
.
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
--
j
;
particle
contact
temp
=
m
contact
buffer
[
j
]
;
m
contact
buffer
[
j
]
=
m
contact
buffer
[
i
]
;
m
contact
buffer
[
i
]
=
temp
;
--
i
;
}
}
m
contact
count
=
j
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
p
=
0
;
p
<
m
proxy
count
;
p
++
)
{
proxy
proxy
=
m
proxy
buffer
[
p
]
;
int
i
=
proxy
.
index
;
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
proxy
.
tag
=
compute
tag
(
m
inverse
diameter
*
pos
.
x
,
m
inverse
diameter
*
pos
.
y
)
;
}
arrays
.
sort
(
m
proxy
buffer
,
0
,
m
proxy
count
)
;
m
contact
count
=
0
;
int
c
index
=
0
;
for
(
int
i
=
0
;
i
<
m
proxy
count
;
i
++
)
{
proxy
a
=
m
proxy
buffer
[
i
]
;
long
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
0
)
;
for
(
int
j
=
i
+
1
;
j
<
m
proxy
count
;
j
++
)
{
proxy
b
=
m
proxy
buffer
[
j
]
;
if
(
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
long
bottom
left
tag
=
compute
relative
tag
(
a
.
tag
,
-
1
,
1
)
;
for
(
;
c
index
<
m
proxy
count
;
c
index
++
)
{
proxy
c
=
m
proxy
buffer
[
c
index
]
;
if
(
bottom
left
tag
<=
c
.
tag
)
{
break
;
}
}
long
bottom
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
1
)
;
for
(
int
b
index
=
c
index
;
b
index
<
m
proxy
count
;
b
index
++
)
{
proxy
b
=
m
proxy
buffer
[
b
index
]
;
if
(
bottom
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
}
if
(
except
zombie
)
{
int
j
=
m
contact
count
;
for
(
int
i
=
0
;
i
<
j
;
i
++
)
{
if
(
(
m
contact
buffer
[
i
]
.
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
--
j
;
particle
contact
temp
=
m
contact
buffer
[
j
]
;
m
contact
buffer
[
j
]
=
m
contact
buffer
[
i
]
;
m
contact
buffer
[
i
]
=
temp
;
--
i
;
}
}
m
contact
count
=
j
;
}
}
<SENTENCE_END/>
%END%%END% (8.23e-01)
%UNK% (2.19e-02)
index (4.97e-03)
to (4.39e-03)
get (3.67e-03)
and (3.53e-03)
tag (2.57e-03)
count (2.56e-03)
buffer (2.47e-03)
proxy (2.39e-03)
<SENTENCE_START>
{
for
(
int
p
=
0
;
p
<
m
proxy
count
;
p
++
)
{
proxy
proxy
=
m
proxy
buffer
[
p
]
;
int
i
=
proxy
.
index
;
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
proxy
.
tag
=
compute
tag
(
m
inverse
diameter
*
pos
.
x
,
m
inverse
diameter
*
pos
.
y
)
;
}
arrays
.
sort
(
m
proxy
buffer
,
0
,
m
proxy
count
)
;
m
contact
count
=
0
;
int
c
index
=
0
;
for
(
int
i
=
0
;
i
<
m
proxy
count
;
i
++
)
{
proxy
a
=
m
proxy
buffer
[
i
]
;
long
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
0
)
;
for
(
int
j
=
i
+
1
;
j
<
m
proxy
count
;
j
++
)
{
proxy
b
=
m
proxy
buffer
[
j
]
;
if
(
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
long
bottom
left
tag
=
compute
relative
tag
(
a
.
tag
,
-
1
,
1
)
;
for
(
;
c
index
<
m
proxy
count
;
c
index
++
)
{
proxy
c
=
m
proxy
buffer
[
c
index
]
;
if
(
bottom
left
tag
<=
c
.
tag
)
{
break
;
}
}
long
bottom
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
1
)
;
for
(
int
b
index
=
c
index
;
b
index
<
m
proxy
count
;
b
index
++
)
{
proxy
b
=
m
proxy
buffer
[
b
index
]
;
if
(
bottom
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
}
if
(
except
zombie
)
{
int
j
=
m
contact
count
;
for
(
int
i
=
0
;
i
<
j
;
i
++
)
{
if
(
(
m
contact
buffer
[
i
]
.
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
--
j
;
particle
contact
temp
=
m
contact
buffer
[
j
]
;
m
contact
buffer
[
j
]
=
m
contact
buffer
[
i
]
;
m
contact
buffer
[
i
]
=
temp
;
--
i
;
}
}
m
contact
count
=
j
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
p
=
0
;
p
<
m
proxy
count
;
p
++
)
{
proxy
proxy
=
m
proxy
buffer
[
p
]
;
int
i
=
proxy
.
index
;
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
proxy
.
tag
=
compute
tag
(
m
inverse
diameter
*
pos
.
x
,
m
inverse
diameter
*
pos
.
y
)
;
}
arrays
.
sort
(
m
proxy
buffer
,
0
,
m
proxy
count
)
;
m
contact
count
=
0
;
int
c
index
=
0
;
for
(
int
i
=
0
;
i
<
m
proxy
count
;
i
++
)
{
proxy
a
=
m
proxy
buffer
[
i
]
;
long
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
0
)
;
for
(
int
j
=
i
+
1
;
j
<
m
proxy
count
;
j
++
)
{
proxy
b
=
m
proxy
buffer
[
j
]
;
if
(
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
long
bottom
left
tag
=
compute
relative
tag
(
a
.
tag
,
-
1
,
1
)
;
for
(
;
c
index
<
m
proxy
count
;
c
index
++
)
{
proxy
c
=
m
proxy
buffer
[
c
index
]
;
if
(
bottom
left
tag
<=
c
.
tag
)
{
break
;
}
}
long
bottom
right
tag
=
compute
relative
tag
(
a
.
tag
,
1
,
1
)
;
for
(
int
b
index
=
c
index
;
b
index
<
m
proxy
count
;
b
index
++
)
{
proxy
b
=
m
proxy
buffer
[
b
index
]
;
if
(
bottom
right
tag
<
b
.
tag
)
{
break
;
}
add
contact
(
a
.
index
,
b
.
index
)
;
}
}
if
(
except
zombie
)
{
int
j
=
m
contact
count
;
for
(
int
i
=
0
;
i
<
j
;
i
++
)
{
if
(
(
m
contact
buffer
[
i
]
.
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
--
j
;
particle
contact
temp
=
m
contact
buffer
[
j
]
;
m
contact
buffer
[
j
]
=
m
contact
buffer
[
i
]
;
m
contact
buffer
[
i
]
=
temp
;
--
i
;
}
}
m
contact
count
=
j
;
}
}
<SENTENCE_END/>
update,body,contactsupdateset (4.97e-01)
%UNK% (6.81e-02)
get (2.38e-02)
draw (1.86e-02)
render (1.53e-02)
aabb (1.47e-02)
compute (1.24e-02)
ray (9.88e-03)
intersect (8.38e-03)
translate (7.53e-03)
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
aabb
.
lower
bound
.
x
=
float
.
max
value
;
aabb
.
lower
bound
.
y
=
float
.
max
value
;
aabb
.
upper
bound
.
x
=
-
float
.
max
value
;
aabb
.
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
p
=
m
position
buffer
.
data
[
i
]
;
vec
2
.
min
to
out
(
aabb
.
lower
bound
,
p
,
aabb
.
lower
bound
)
;
vec
2
.
max
to
out
(
aabb
.
upper
bound
,
p
,
aabb
.
upper
bound
)
;
}
aabb
.
lower
bound
.
x
-=
m
particle
diameter
;
aabb
.
lower
bound
.
y
-=
m
particle
diameter
;
aabb
.
upper
bound
.
x
+=
m
particle
diameter
;
aabb
.
upper
bound
.
y
+=
m
particle
diameter
;
m
body
contact
count
=
0
;
ubccallback
.
system
=
this
;
m
world
.
query
aabb
(
ubccallback
,
aabb
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
aabb
.
lower
bound
.
x
=
float
.
max
value
;
aabb
.
lower
bound
.
y
=
float
.
max
value
;
aabb
.
upper
bound
.
x
=
-
float
.
max
value
;
aabb
.
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
p
=
m
position
buffer
.
data
[
i
]
;
vec
2
.
min
to
out
(
aabb
.
lower
bound
,
p
,
aabb
.
lower
bound
)
;
vec
2
.
max
to
out
(
aabb
.
upper
bound
,
p
,
aabb
.
upper
bound
)
;
}
aabb
.
lower
bound
.
x
-=
m
particle
diameter
;
aabb
.
lower
bound
.
y
-=
m
particle
diameter
;
aabb
.
upper
bound
.
x
+=
m
particle
diameter
;
aabb
.
upper
bound
.
y
+=
m
particle
diameter
;
m
body
contact
count
=
0
;
ubccallback
.
system
=
this
;
m
world
.
query
aabb
(
ubccallback
,
aabb
)
;
}
<SENTENCE_END/>
bodyset (1.56e-01)
%UNK% (1.03e-01)
%END% (6.71e-02)
lower (2.98e-02)
get (2.79e-02)
aabb (2.08e-02)
upper (1.86e-02)
bound (1.69e-02)
ray (1.30e-02)
draw (1.05e-02)
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
aabb
.
lower
bound
.
x
=
float
.
max
value
;
aabb
.
lower
bound
.
y
=
float
.
max
value
;
aabb
.
upper
bound
.
x
=
-
float
.
max
value
;
aabb
.
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
p
=
m
position
buffer
.
data
[
i
]
;
vec
2
.
min
to
out
(
aabb
.
lower
bound
,
p
,
aabb
.
lower
bound
)
;
vec
2
.
max
to
out
(
aabb
.
upper
bound
,
p
,
aabb
.
upper
bound
)
;
}
aabb
.
lower
bound
.
x
-=
m
particle
diameter
;
aabb
.
lower
bound
.
y
-=
m
particle
diameter
;
aabb
.
upper
bound
.
x
+=
m
particle
diameter
;
aabb
.
upper
bound
.
y
+=
m
particle
diameter
;
m
body
contact
count
=
0
;
ubccallback
.
system
=
this
;
m
world
.
query
aabb
(
ubccallback
,
aabb
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
aabb
.
lower
bound
.
x
=
float
.
max
value
;
aabb
.
lower
bound
.
y
=
float
.
max
value
;
aabb
.
upper
bound
.
x
=
-
float
.
max
value
;
aabb
.
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
p
=
m
position
buffer
.
data
[
i
]
;
vec
2
.
min
to
out
(
aabb
.
lower
bound
,
p
,
aabb
.
lower
bound
)
;
vec
2
.
max
to
out
(
aabb
.
upper
bound
,
p
,
aabb
.
upper
bound
)
;
}
aabb
.
lower
bound
.
x
-=
m
particle
diameter
;
aabb
.
lower
bound
.
y
-=
m
particle
diameter
;
aabb
.
upper
bound
.
x
+=
m
particle
diameter
;
aabb
.
upper
bound
.
y
+=
m
particle
diameter
;
m
body
contact
count
=
0
;
ubccallback
.
system
=
this
;
m
world
.
query
aabb
(
ubccallback
,
aabb
)
;
}
<SENTENCE_END/>
contacts%END% (2.72e-01)
%UNK% (1.05e-01)
set (4.47e-02)
bound (2.77e-02)
aabb (1.99e-02)
get (1.83e-02)
to (1.59e-02)
ray (1.20e-02)
2 (8.23e-03)
triangle (7.18e-03)
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
aabb
.
lower
bound
.
x
=
float
.
max
value
;
aabb
.
lower
bound
.
y
=
float
.
max
value
;
aabb
.
upper
bound
.
x
=
-
float
.
max
value
;
aabb
.
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
p
=
m
position
buffer
.
data
[
i
]
;
vec
2
.
min
to
out
(
aabb
.
lower
bound
,
p
,
aabb
.
lower
bound
)
;
vec
2
.
max
to
out
(
aabb
.
upper
bound
,
p
,
aabb
.
upper
bound
)
;
}
aabb
.
lower
bound
.
x
-=
m
particle
diameter
;
aabb
.
lower
bound
.
y
-=
m
particle
diameter
;
aabb
.
upper
bound
.
x
+=
m
particle
diameter
;
aabb
.
upper
bound
.
y
+=
m
particle
diameter
;
m
body
contact
count
=
0
;
ubccallback
.
system
=
this
;
m
world
.
query
aabb
(
ubccallback
,
aabb
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
aabb
.
lower
bound
.
x
=
float
.
max
value
;
aabb
.
lower
bound
.
y
=
float
.
max
value
;
aabb
.
upper
bound
.
x
=
-
float
.
max
value
;
aabb
.
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
p
=
m
position
buffer
.
data
[
i
]
;
vec
2
.
min
to
out
(
aabb
.
lower
bound
,
p
,
aabb
.
lower
bound
)
;
vec
2
.
max
to
out
(
aabb
.
upper
bound
,
p
,
aabb
.
upper
bound
)
;
}
aabb
.
lower
bound
.
x
-=
m
particle
diameter
;
aabb
.
lower
bound
.
y
-=
m
particle
diameter
;
aabb
.
upper
bound
.
x
+=
m
particle
diameter
;
aabb
.
upper
bound
.
y
+=
m
particle
diameter
;
m
body
contact
count
=
0
;
ubccallback
.
system
=
this
;
m
world
.
query
aabb
(
ubccallback
,
aabb
)
;
}
<SENTENCE_END/>
%END%%END% (5.11e-01)
%UNK% (8.38e-02)
set (1.82e-02)
to (1.26e-02)
aabb (1.13e-02)
get (1.09e-02)
ray (8.75e-03)
2 (6.83e-03)
bound (5.65e-03)
triangle (5.02e-03)
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
aabb
.
lower
bound
.
x
=
float
.
max
value
;
aabb
.
lower
bound
.
y
=
float
.
max
value
;
aabb
.
upper
bound
.
x
=
-
float
.
max
value
;
aabb
.
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
p
=
m
position
buffer
.
data
[
i
]
;
vec
2
.
min
to
out
(
aabb
.
lower
bound
,
p
,
aabb
.
lower
bound
)
;
vec
2
.
max
to
out
(
aabb
.
upper
bound
,
p
,
aabb
.
upper
bound
)
;
}
aabb
.
lower
bound
.
x
-=
m
particle
diameter
;
aabb
.
lower
bound
.
y
-=
m
particle
diameter
;
aabb
.
upper
bound
.
x
+=
m
particle
diameter
;
aabb
.
upper
bound
.
y
+=
m
particle
diameter
;
m
body
contact
count
=
0
;
ubccallback
.
system
=
this
;
m
world
.
query
aabb
(
ubccallback
,
aabb
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
aabb
.
lower
bound
.
x
=
float
.
max
value
;
aabb
.
lower
bound
.
y
=
float
.
max
value
;
aabb
.
upper
bound
.
x
=
-
float
.
max
value
;
aabb
.
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
p
=
m
position
buffer
.
data
[
i
]
;
vec
2
.
min
to
out
(
aabb
.
lower
bound
,
p
,
aabb
.
lower
bound
)
;
vec
2
.
max
to
out
(
aabb
.
upper
bound
,
p
,
aabb
.
upper
bound
)
;
}
aabb
.
lower
bound
.
x
-=
m
particle
diameter
;
aabb
.
lower
bound
.
y
-=
m
particle
diameter
;
aabb
.
upper
bound
.
x
+=
m
particle
diameter
;
aabb
.
upper
bound
.
y
+=
m
particle
diameter
;
m
body
contact
count
=
0
;
ubccallback
.
system
=
this
;
m
world
.
query
aabb
(
ubccallback
,
aabb
)
;
}
<SENTENCE_END/>
solve,collisionsolveset (5.77e-01)
%UNK% (3.22e-02)
get (2.21e-02)
intersect (1.65e-02)
ray (1.26e-02)
draw (1.12e-02)
2 (9.44e-03)
line (7.81e-03)
%END% (7.71e-03)
compute (6.95e-03)
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
final
vec
2
lower
bound
=
aabb
.
lower
bound
;
final
vec
2
upper
bound
=
aabb
.
upper
bound
;
lower
bound
.
x
=
float
.
max
value
;
lower
bound
.
y
=
float
.
max
value
;
upper
bound
.
x
=
-
float
.
max
value
;
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
final
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
final
vec
2
p
1
=
m
position
buffer
.
data
[
i
]
;
final
float
p
1
x
=
p
1
.
x
;
final
float
p
1
y
=
p
1
.
y
;
final
float
p
2
x
=
p
1
x
+
step
.
dt
*
v
.
x
;
final
float
p
2
y
=
p
1
y
+
step
.
dt
*
v
.
y
;
final
float
bx
=
p
1
x
<
p
2
x
?
p
1
x
:
p
2
x
;
final
float
by
=
p
1
y
<
p
2
y
?
p
1
y
:
p
2
y
;
lower
bound
.
x
=
lower
bound
.
x
<
bx
?
lower
bound
.
x
:
bx
;
lower
bound
.
y
=
lower
bound
.
y
<
by
?
lower
bound
.
y
:
by
;
final
float
b
1
x
=
p
1
x
>
p
2
x
?
p
1
x
:
p
2
x
;
final
float
b
1
y
=
p
1
y
>
p
2
y
?
p
1
y
:
p
2
y
;
upper
bound
.
x
=
upper
bound
.
x
>
b
1
x
?
upper
bound
.
x
:
b
1
x
;
upper
bound
.
y
=
upper
bound
.
y
>
b
1
y
?
upper
bound
.
y
:
b
1
y
;
}
sccallback
.
step
=
step
;
sccallback
.
system
=
this
;
m
world
.
query
aabb
(
sccallback
,
aabb
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
final
vec
2
lower
bound
=
aabb
.
lower
bound
;
final
vec
2
upper
bound
=
aabb
.
upper
bound
;
lower
bound
.
x
=
float
.
max
value
;
lower
bound
.
y
=
float
.
max
value
;
upper
bound
.
x
=
-
float
.
max
value
;
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
final
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
final
vec
2
p
1
=
m
position
buffer
.
data
[
i
]
;
final
float
p
1
x
=
p
1
.
x
;
final
float
p
1
y
=
p
1
.
y
;
final
float
p
2
x
=
p
1
x
+
step
.
dt
*
v
.
x
;
final
float
p
2
y
=
p
1
y
+
step
.
dt
*
v
.
y
;
final
float
bx
=
p
1
x
<
p
2
x
?
p
1
x
:
p
2
x
;
final
float
by
=
p
1
y
<
p
2
y
?
p
1
y
:
p
2
y
;
lower
bound
.
x
=
lower
bound
.
x
<
bx
?
lower
bound
.
x
:
bx
;
lower
bound
.
y
=
lower
bound
.
y
<
by
?
lower
bound
.
y
:
by
;
final
float
b
1
x
=
p
1
x
>
p
2
x
?
p
1
x
:
p
2
x
;
final
float
b
1
y
=
p
1
y
>
p
2
y
?
p
1
y
:
p
2
y
;
upper
bound
.
x
=
upper
bound
.
x
>
b
1
x
?
upper
bound
.
x
:
b
1
x
;
upper
bound
.
y
=
upper
bound
.
y
>
b
1
y
?
upper
bound
.
y
:
b
1
y
;
}
sccallback
.
step
=
step
;
sccallback
.
system
=
this
;
m
world
.
query
aabb
(
sccallback
,
aabb
)
;
}
<SENTENCE_END/>
collisionset (1.42e-01)
%END% (8.39e-02)
%UNK% (4.56e-02)
2 (3.36e-02)
get (3.12e-02)
ray (2.19e-02)
x (2.07e-02)
upper (1.80e-02)
line (1.73e-02)
to (1.63e-02)
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
final
vec
2
lower
bound
=
aabb
.
lower
bound
;
final
vec
2
upper
bound
=
aabb
.
upper
bound
;
lower
bound
.
x
=
float
.
max
value
;
lower
bound
.
y
=
float
.
max
value
;
upper
bound
.
x
=
-
float
.
max
value
;
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
final
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
final
vec
2
p
1
=
m
position
buffer
.
data
[
i
]
;
final
float
p
1
x
=
p
1
.
x
;
final
float
p
1
y
=
p
1
.
y
;
final
float
p
2
x
=
p
1
x
+
step
.
dt
*
v
.
x
;
final
float
p
2
y
=
p
1
y
+
step
.
dt
*
v
.
y
;
final
float
bx
=
p
1
x
<
p
2
x
?
p
1
x
:
p
2
x
;
final
float
by
=
p
1
y
<
p
2
y
?
p
1
y
:
p
2
y
;
lower
bound
.
x
=
lower
bound
.
x
<
bx
?
lower
bound
.
x
:
bx
;
lower
bound
.
y
=
lower
bound
.
y
<
by
?
lower
bound
.
y
:
by
;
final
float
b
1
x
=
p
1
x
>
p
2
x
?
p
1
x
:
p
2
x
;
final
float
b
1
y
=
p
1
y
>
p
2
y
?
p
1
y
:
p
2
y
;
upper
bound
.
x
=
upper
bound
.
x
>
b
1
x
?
upper
bound
.
x
:
b
1
x
;
upper
bound
.
y
=
upper
bound
.
y
>
b
1
y
?
upper
bound
.
y
:
b
1
y
;
}
sccallback
.
step
=
step
;
sccallback
.
system
=
this
;
m
world
.
query
aabb
(
sccallback
,
aabb
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
final
vec
2
lower
bound
=
aabb
.
lower
bound
;
final
vec
2
upper
bound
=
aabb
.
upper
bound
;
lower
bound
.
x
=
float
.
max
value
;
lower
bound
.
y
=
float
.
max
value
;
upper
bound
.
x
=
-
float
.
max
value
;
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
final
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
final
vec
2
p
1
=
m
position
buffer
.
data
[
i
]
;
final
float
p
1
x
=
p
1
.
x
;
final
float
p
1
y
=
p
1
.
y
;
final
float
p
2
x
=
p
1
x
+
step
.
dt
*
v
.
x
;
final
float
p
2
y
=
p
1
y
+
step
.
dt
*
v
.
y
;
final
float
bx
=
p
1
x
<
p
2
x
?
p
1
x
:
p
2
x
;
final
float
by
=
p
1
y
<
p
2
y
?
p
1
y
:
p
2
y
;
lower
bound
.
x
=
lower
bound
.
x
<
bx
?
lower
bound
.
x
:
bx
;
lower
bound
.
y
=
lower
bound
.
y
<
by
?
lower
bound
.
y
:
by
;
final
float
b
1
x
=
p
1
x
>
p
2
x
?
p
1
x
:
p
2
x
;
final
float
b
1
y
=
p
1
y
>
p
2
y
?
p
1
y
:
p
2
y
;
upper
bound
.
x
=
upper
bound
.
x
>
b
1
x
?
upper
bound
.
x
:
b
1
x
;
upper
bound
.
y
=
upper
bound
.
y
>
b
1
y
?
upper
bound
.
y
:
b
1
y
;
}
sccallback
.
step
=
step
;
sccallback
.
system
=
this
;
m
world
.
query
aabb
(
sccallback
,
aabb
)
;
}
<SENTENCE_END/>
%END%%END% (2.12e-01)
set (6.52e-02)
%UNK% (4.50e-02)
2 (4.21e-02)
get (2.75e-02)
x (2.34e-02)
ray (2.31e-02)
to (2.16e-02)
line (1.75e-02)
y (1.66e-02)
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
final
vec
2
lower
bound
=
aabb
.
lower
bound
;
final
vec
2
upper
bound
=
aabb
.
upper
bound
;
lower
bound
.
x
=
float
.
max
value
;
lower
bound
.
y
=
float
.
max
value
;
upper
bound
.
x
=
-
float
.
max
value
;
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
final
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
final
vec
2
p
1
=
m
position
buffer
.
data
[
i
]
;
final
float
p
1
x
=
p
1
.
x
;
final
float
p
1
y
=
p
1
.
y
;
final
float
p
2
x
=
p
1
x
+
step
.
dt
*
v
.
x
;
final
float
p
2
y
=
p
1
y
+
step
.
dt
*
v
.
y
;
final
float
bx
=
p
1
x
<
p
2
x
?
p
1
x
:
p
2
x
;
final
float
by
=
p
1
y
<
p
2
y
?
p
1
y
:
p
2
y
;
lower
bound
.
x
=
lower
bound
.
x
<
bx
?
lower
bound
.
x
:
bx
;
lower
bound
.
y
=
lower
bound
.
y
<
by
?
lower
bound
.
y
:
by
;
final
float
b
1
x
=
p
1
x
>
p
2
x
?
p
1
x
:
p
2
x
;
final
float
b
1
y
=
p
1
y
>
p
2
y
?
p
1
y
:
p
2
y
;
upper
bound
.
x
=
upper
bound
.
x
>
b
1
x
?
upper
bound
.
x
:
b
1
x
;
upper
bound
.
y
=
upper
bound
.
y
>
b
1
y
?
upper
bound
.
y
:
b
1
y
;
}
sccallback
.
step
=
step
;
sccallback
.
system
=
this
;
m
world
.
query
aabb
(
sccallback
,
aabb
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
final
aabb
aabb
=
temp
;
final
vec
2
lower
bound
=
aabb
.
lower
bound
;
final
vec
2
upper
bound
=
aabb
.
upper
bound
;
lower
bound
.
x
=
float
.
max
value
;
lower
bound
.
y
=
float
.
max
value
;
upper
bound
.
x
=
-
float
.
max
value
;
upper
bound
.
y
=
-
float
.
max
value
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
final
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
final
vec
2
p
1
=
m
position
buffer
.
data
[
i
]
;
final
float
p
1
x
=
p
1
.
x
;
final
float
p
1
y
=
p
1
.
y
;
final
float
p
2
x
=
p
1
x
+
step
.
dt
*
v
.
x
;
final
float
p
2
y
=
p
1
y
+
step
.
dt
*
v
.
y
;
final
float
bx
=
p
1
x
<
p
2
x
?
p
1
x
:
p
2
x
;
final
float
by
=
p
1
y
<
p
2
y
?
p
1
y
:
p
2
y
;
lower
bound
.
x
=
lower
bound
.
x
<
bx
?
lower
bound
.
x
:
bx
;
lower
bound
.
y
=
lower
bound
.
y
<
by
?
lower
bound
.
y
:
by
;
final
float
b
1
x
=
p
1
x
>
p
2
x
?
p
1
x
:
p
2
x
;
final
float
b
1
y
=
p
1
y
>
p
2
y
?
p
1
y
:
p
2
y
;
upper
bound
.
x
=
upper
bound
.
x
>
b
1
x
?
upper
bound
.
x
:
b
1
x
;
upper
bound
.
y
=
upper
bound
.
y
>
b
1
y
?
upper
bound
.
y
:
b
1
y
;
}
sccallback
.
step
=
step
;
sccallback
.
system
=
this
;
m
world
.
query
aabb
(
sccallback
,
aabb
)
;
}
<SENTENCE_END/>
solvesolve%END% (2.23e-01)
%UNK% (1.88e-01)
get (4.87e-02)
update (3.38e-02)
set (3.34e-02)
solve (2.34e-02)
add (2.22e-02)
render (1.46e-02)
is (1.26e-02)
create (1.10e-02)
<SENTENCE_START>
{
++
m
timestamp
;
if
(
m
count
==
0
)
{
return
;
}
m
all
particle
flags
=
0
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
all
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
solve
zombie
(
)
;
}
if
(
m
count
==
0
)
{
return
;
}
m
all
group
flags
=
0
;
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
m
all
group
flags
|=
group
.
m
group
flags
;
}
final
float
gravityx
=
step
.
dt
*
m
gravity
scale
*
m
world
.
get
gravity
(
)
.
x
;
final
float
gravityy
=
step
.
dt
*
m
gravity
scale
*
m
world
.
get
gravity
(
)
.
y
;
float
critical
velocyty
squared
=
get
critical
velocity
squared
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
v
.
x
+=
gravityx
;
v
.
y
+=
gravityy
;
float
v
2
=
v
.
x
*
v
.
x
+
v
.
y
*
v
.
y
;
if
(
v
2
>
critical
velocyty
squared
)
{
float
a
=
v
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
critical
velocyty
squared
/
v
2
)
;
v
.
x
*=
a
;
v
.
y
*=
a
;
}
}
solve
collision
(
step
)
;
if
(
(
m
all
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
solve
rigid
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
solve
wall
(
step
)
;
}
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
vec
2
vel
=
m
velocity
buffer
.
data
[
i
]
;
pos
.
x
+=
step
.
dt
*
vel
.
x
;
pos
.
y
+=
step
.
dt
*
vel
.
y
;
}
update
body
contacts
(
)
;
update
contacts
(
false
)
;
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
viscous
particle
)
!=
0
)
{
solve
viscous
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
powder
particle
)
!=
0
)
{
solve
powder
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
tensile
particle
)
!=
0
)
{
solve
tensile
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
solve
elastic
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
spring
particle
)
!=
0
)
{
solve
spring
(
step
)
;
}
if
(
(
m
all
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
solve
solid
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
color
mixing
particle
)
!=
0
)
{
solve
color
mixing
(
step
)
;
}
solve
pressure
(
step
)
;
solve
damping
(
step
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
++
m
timestamp
;
if
(
m
count
==
0
)
{
return
;
}
m
all
particle
flags
=
0
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
all
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
solve
zombie
(
)
;
}
if
(
m
count
==
0
)
{
return
;
}
m
all
group
flags
=
0
;
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
m
all
group
flags
|=
group
.
m
group
flags
;
}
final
float
gravityx
=
step
.
dt
*
m
gravity
scale
*
m
world
.
get
gravity
(
)
.
x
;
final
float
gravityy
=
step
.
dt
*
m
gravity
scale
*
m
world
.
get
gravity
(
)
.
y
;
float
critical
velocyty
squared
=
get
critical
velocity
squared
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
v
.
x
+=
gravityx
;
v
.
y
+=
gravityy
;
float
v
2
=
v
.
x
*
v
.
x
+
v
.
y
*
v
.
y
;
if
(
v
2
>
critical
velocyty
squared
)
{
float
a
=
v
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
critical
velocyty
squared
/
v
2
)
;
v
.
x
*=
a
;
v
.
y
*=
a
;
}
}
solve
collision
(
step
)
;
if
(
(
m
all
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
solve
rigid
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
solve
wall
(
step
)
;
}
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
vec
2
vel
=
m
velocity
buffer
.
data
[
i
]
;
pos
.
x
+=
step
.
dt
*
vel
.
x
;
pos
.
y
+=
step
.
dt
*
vel
.
y
;
}
update
body
contacts
(
)
;
update
contacts
(
false
)
;
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
viscous
particle
)
!=
0
)
{
solve
viscous
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
powder
particle
)
!=
0
)
{
solve
powder
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
tensile
particle
)
!=
0
)
{
solve
tensile
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
solve
elastic
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
spring
particle
)
!=
0
)
{
solve
spring
(
step
)
;
}
if
(
(
m
all
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
solve
solid
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
color
mixing
particle
)
!=
0
)
{
solve
color
mixing
(
step
)
;
}
solve
pressure
(
step
)
;
solve
damping
(
step
)
;
}
<SENTENCE_END/>
%END%%END% (7.65e-01)
%UNK% (3.37e-02)
particle (9.25e-03)
solve (5.87e-03)
flags (5.18e-03)
group (5.17e-03)
all (5.16e-03)
get (4.53e-03)
m (4.52e-03)
update (4.00e-03)
<SENTENCE_START>
{
++
m
timestamp
;
if
(
m
count
==
0
)
{
return
;
}
m
all
particle
flags
=
0
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
all
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
solve
zombie
(
)
;
}
if
(
m
count
==
0
)
{
return
;
}
m
all
group
flags
=
0
;
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
m
all
group
flags
|=
group
.
m
group
flags
;
}
final
float
gravityx
=
step
.
dt
*
m
gravity
scale
*
m
world
.
get
gravity
(
)
.
x
;
final
float
gravityy
=
step
.
dt
*
m
gravity
scale
*
m
world
.
get
gravity
(
)
.
y
;
float
critical
velocyty
squared
=
get
critical
velocity
squared
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
v
.
x
+=
gravityx
;
v
.
y
+=
gravityy
;
float
v
2
=
v
.
x
*
v
.
x
+
v
.
y
*
v
.
y
;
if
(
v
2
>
critical
velocyty
squared
)
{
float
a
=
v
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
critical
velocyty
squared
/
v
2
)
;
v
.
x
*=
a
;
v
.
y
*=
a
;
}
}
solve
collision
(
step
)
;
if
(
(
m
all
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
solve
rigid
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
solve
wall
(
step
)
;
}
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
vec
2
vel
=
m
velocity
buffer
.
data
[
i
]
;
pos
.
x
+=
step
.
dt
*
vel
.
x
;
pos
.
y
+=
step
.
dt
*
vel
.
y
;
}
update
body
contacts
(
)
;
update
contacts
(
false
)
;
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
viscous
particle
)
!=
0
)
{
solve
viscous
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
powder
particle
)
!=
0
)
{
solve
powder
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
tensile
particle
)
!=
0
)
{
solve
tensile
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
solve
elastic
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
spring
particle
)
!=
0
)
{
solve
spring
(
step
)
;
}
if
(
(
m
all
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
solve
solid
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
color
mixing
particle
)
!=
0
)
{
solve
color
mixing
(
step
)
;
}
solve
pressure
(
step
)
;
solve
damping
(
step
)
;
}
<SENTENCE_END/>
<SENTENCE_START>
{
++
m
timestamp
;
if
(
m
count
==
0
)
{
return
;
}
m
all
particle
flags
=
0
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
all
particle
flags
|=
m
flags
buffer
.
data
[
i
]
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
zombie
particle
)
!=
0
)
{
solve
zombie
(
)
;
}
if
(
m
count
==
0
)
{
return
;
}
m
all
group
flags
=
0
;
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
m
all
group
flags
|=
group
.
m
group
flags
;
}
final
float
gravityx
=
step
.
dt
*
m
gravity
scale
*
m
world
.
get
gravity
(
)
.
x
;
final
float
gravityy
=
step
.
dt
*
m
gravity
scale
*
m
world
.
get
gravity
(
)
.
y
;
float
critical
velocyty
squared
=
get
critical
velocity
squared
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
v
=
m
velocity
buffer
.
data
[
i
]
;
v
.
x
+=
gravityx
;
v
.
y
+=
gravityy
;
float
v
2
=
v
.
x
*
v
.
x
+
v
.
y
*
v
.
y
;
if
(
v
2
>
critical
velocyty
squared
)
{
float
a
=
v
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
critical
velocyty
squared
/
v
2
)
;
v
.
x
*=
a
;
v
.
y
*=
a
;
}
}
solve
collision
(
step
)
;
if
(
(
m
all
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
solve
rigid
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
solve
wall
(
step
)
;
}
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
vec
2
pos
=
m
position
buffer
.
data
[
i
]
;
vec
2
vel
=
m
velocity
buffer
.
data
[
i
]
;
pos
.
x
+=
step
.
dt
*
vel
.
x
;
pos
.
y
+=
step
.
dt
*
vel
.
y
;
}
update
body
contacts
(
)
;
update
contacts
(
false
)
;
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
viscous
particle
)
!=
0
)
{
solve
viscous
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
powder
particle
)
!=
0
)
{
solve
powder
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
tensile
particle
)
!=
0
)
{
solve
tensile
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
solve
elastic
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
spring
particle
)
!=
0
)
{
solve
spring
(
step
)
;
}
if
(
(
m
all
group
flags
&
particle
group
type
.
b
2
solid
particle
group
)
!=
0
)
{
solve
solid
(
step
)
;
}
if
(
(
m
all
particle
flags
&
particle
type
.
b
2
color
mixing
particle
)
!=
0
)
{
solve
color
mixing
(
step
)
;
}
solve
pressure
(
step
)
;
solve
damping
(
step
)
;
}
<SENTENCE_END/>
solve,pressuresolve%UNK% (1.95e-01)
get (1.50e-01)
set (8.93e-02)
add (6.87e-02)
%END% (4.78e-02)
create (2.90e-02)
init (1.96e-02)
solve (1.83e-02)
update (1.24e-02)
generate (8.57e-03)
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
if
(
(
m
all
particle
flags
&
k
no
pressure
flags
)
!=
0
)
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
k
no
pressure
flags
)
!=
0
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
}
}
float
pressure
per
weight
=
m
pressure
strength
*
get
critical
pressure
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
float
h
=
pressure
per
weight
*
math
utils
.
max
(
0.0f
,
math
utils
.
min
(
w
,
settings
.
max
particle
weight
)
-
settings
.
min
particle
weight
)
;
m
accumulation
buffer
[
i
]
=
h
;
}
float
velocity
per
pressure
=
step
.
dt
/
(
m
density
*
m
particle
diameter
)
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
float
h
=
m
accumulation
buffer
[
a
]
+
pressure
per
weight
*
w
;
final
vec
2
f
=
temp
vec
;
final
float
coef
=
velocity
per
pressure
*
w
*
m
*
h
;
f
.
x
=
coef
*
n
.
x
;
f
.
y
=
coef
*
n
.
y
;
final
vec
2
vel
data
=
m
velocity
buffer
.
data
[
a
]
;
final
float
particle
inv
mass
=
get
particle
inv
mass
(
)
;
vel
data
.
x
-=
particle
inv
mass
*
f
.
x
;
vel
data
.
y
-=
particle
inv
mass
*
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
float
h
=
m
accumulation
buffer
[
a
]
+
m
accumulation
buffer
[
b
]
;
final
float
fx
=
velocity
per
pressure
*
w
*
h
*
n
.
x
;
final
float
fy
=
velocity
per
pressure
*
w
*
h
*
n
.
y
;
final
vec
2
vel
data
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
data
b
=
m
velocity
buffer
.
data
[
b
]
;
vel
data
a
.
x
-=
fx
;
vel
data
a
.
y
-=
fy
;
vel
data
b
.
x
+=
fx
;
vel
data
b
.
y
+=
fy
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
if
(
(
m
all
particle
flags
&
k
no
pressure
flags
)
!=
0
)
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
k
no
pressure
flags
)
!=
0
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
}
}
float
pressure
per
weight
=
m
pressure
strength
*
get
critical
pressure
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
float
h
=
pressure
per
weight
*
math
utils
.
max
(
0.0f
,
math
utils
.
min
(
w
,
settings
.
max
particle
weight
)
-
settings
.
min
particle
weight
)
;
m
accumulation
buffer
[
i
]
=
h
;
}
float
velocity
per
pressure
=
step
.
dt
/
(
m
density
*
m
particle
diameter
)
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
float
h
=
m
accumulation
buffer
[
a
]
+
pressure
per
weight
*
w
;
final
vec
2
f
=
temp
vec
;
final
float
coef
=
velocity
per
pressure
*
w
*
m
*
h
;
f
.
x
=
coef
*
n
.
x
;
f
.
y
=
coef
*
n
.
y
;
final
vec
2
vel
data
=
m
velocity
buffer
.
data
[
a
]
;
final
float
particle
inv
mass
=
get
particle
inv
mass
(
)
;
vel
data
.
x
-=
particle
inv
mass
*
f
.
x
;
vel
data
.
y
-=
particle
inv
mass
*
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
float
h
=
m
accumulation
buffer
[
a
]
+
m
accumulation
buffer
[
b
]
;
final
float
fx
=
velocity
per
pressure
*
w
*
h
*
n
.
x
;
final
float
fy
=
velocity
per
pressure
*
w
*
h
*
n
.
y
;
final
vec
2
vel
data
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
data
b
=
m
velocity
buffer
.
data
[
b
]
;
vel
data
a
.
x
-=
fx
;
vel
data
a
.
y
-=
fy
;
vel
data
b
.
x
+=
fx
;
vel
data
b
.
y
+=
fy
;
}
}
<SENTENCE_END/>
pressure%END% (3.70e-01)
%UNK% (1.51e-01)
get (6.51e-02)
add (1.73e-02)
set (1.15e-02)
create (1.10e-02)
to (9.15e-03)
solve (7.65e-03)
contact (6.65e-03)
update (5.83e-03)
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
if
(
(
m
all
particle
flags
&
k
no
pressure
flags
)
!=
0
)
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
k
no
pressure
flags
)
!=
0
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
}
}
float
pressure
per
weight
=
m
pressure
strength
*
get
critical
pressure
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
float
h
=
pressure
per
weight
*
math
utils
.
max
(
0.0f
,
math
utils
.
min
(
w
,
settings
.
max
particle
weight
)
-
settings
.
min
particle
weight
)
;
m
accumulation
buffer
[
i
]
=
h
;
}
float
velocity
per
pressure
=
step
.
dt
/
(
m
density
*
m
particle
diameter
)
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
float
h
=
m
accumulation
buffer
[
a
]
+
pressure
per
weight
*
w
;
final
vec
2
f
=
temp
vec
;
final
float
coef
=
velocity
per
pressure
*
w
*
m
*
h
;
f
.
x
=
coef
*
n
.
x
;
f
.
y
=
coef
*
n
.
y
;
final
vec
2
vel
data
=
m
velocity
buffer
.
data
[
a
]
;
final
float
particle
inv
mass
=
get
particle
inv
mass
(
)
;
vel
data
.
x
-=
particle
inv
mass
*
f
.
x
;
vel
data
.
y
-=
particle
inv
mass
*
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
float
h
=
m
accumulation
buffer
[
a
]
+
m
accumulation
buffer
[
b
]
;
final
float
fx
=
velocity
per
pressure
*
w
*
h
*
n
.
x
;
final
float
fy
=
velocity
per
pressure
*
w
*
h
*
n
.
y
;
final
vec
2
vel
data
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
data
b
=
m
velocity
buffer
.
data
[
b
]
;
vel
data
a
.
x
-=
fx
;
vel
data
a
.
y
-=
fy
;
vel
data
b
.
x
+=
fx
;
vel
data
b
.
y
+=
fy
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
if
(
(
m
all
particle
flags
&
k
no
pressure
flags
)
!=
0
)
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
k
no
pressure
flags
)
!=
0
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
}
}
float
pressure
per
weight
=
m
pressure
strength
*
get
critical
pressure
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
float
h
=
pressure
per
weight
*
math
utils
.
max
(
0.0f
,
math
utils
.
min
(
w
,
settings
.
max
particle
weight
)
-
settings
.
min
particle
weight
)
;
m
accumulation
buffer
[
i
]
=
h
;
}
float
velocity
per
pressure
=
step
.
dt
/
(
m
density
*
m
particle
diameter
)
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
float
h
=
m
accumulation
buffer
[
a
]
+
pressure
per
weight
*
w
;
final
vec
2
f
=
temp
vec
;
final
float
coef
=
velocity
per
pressure
*
w
*
m
*
h
;
f
.
x
=
coef
*
n
.
x
;
f
.
y
=
coef
*
n
.
y
;
final
vec
2
vel
data
=
m
velocity
buffer
.
data
[
a
]
;
final
float
particle
inv
mass
=
get
particle
inv
mass
(
)
;
vel
data
.
x
-=
particle
inv
mass
*
f
.
x
;
vel
data
.
y
-=
particle
inv
mass
*
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
float
h
=
m
accumulation
buffer
[
a
]
+
m
accumulation
buffer
[
b
]
;
final
float
fx
=
velocity
per
pressure
*
w
*
h
*
n
.
x
;
final
float
fy
=
velocity
per
pressure
*
w
*
h
*
n
.
y
;
final
vec
2
vel
data
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
data
b
=
m
velocity
buffer
.
data
[
b
]
;
vel
data
a
.
x
-=
fx
;
vel
data
a
.
y
-=
fy
;
vel
data
b
.
x
+=
fx
;
vel
data
b
.
y
+=
fy
;
}
}
<SENTENCE_END/>
%END%%END% (5.20e-01)
%UNK% (1.13e-01)
get (3.78e-02)
add (9.31e-03)
to (8.35e-03)
create (6.50e-03)
contact (6.38e-03)
buffer (5.48e-03)
set (5.06e-03)
solve (4.57e-03)
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
if
(
(
m
all
particle
flags
&
k
no
pressure
flags
)
!=
0
)
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
k
no
pressure
flags
)
!=
0
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
}
}
float
pressure
per
weight
=
m
pressure
strength
*
get
critical
pressure
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
float
h
=
pressure
per
weight
*
math
utils
.
max
(
0.0f
,
math
utils
.
min
(
w
,
settings
.
max
particle
weight
)
-
settings
.
min
particle
weight
)
;
m
accumulation
buffer
[
i
]
=
h
;
}
float
velocity
per
pressure
=
step
.
dt
/
(
m
density
*
m
particle
diameter
)
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
float
h
=
m
accumulation
buffer
[
a
]
+
pressure
per
weight
*
w
;
final
vec
2
f
=
temp
vec
;
final
float
coef
=
velocity
per
pressure
*
w
*
m
*
h
;
f
.
x
=
coef
*
n
.
x
;
f
.
y
=
coef
*
n
.
y
;
final
vec
2
vel
data
=
m
velocity
buffer
.
data
[
a
]
;
final
float
particle
inv
mass
=
get
particle
inv
mass
(
)
;
vel
data
.
x
-=
particle
inv
mass
*
f
.
x
;
vel
data
.
y
-=
particle
inv
mass
*
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
float
h
=
m
accumulation
buffer
[
a
]
+
m
accumulation
buffer
[
b
]
;
final
float
fx
=
velocity
per
pressure
*
w
*
h
*
n
.
x
;
final
float
fy
=
velocity
per
pressure
*
w
*
h
*
n
.
y
;
final
vec
2
vel
data
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
data
b
=
m
velocity
buffer
.
data
[
b
]
;
vel
data
a
.
x
-=
fx
;
vel
data
a
.
y
-=
fy
;
vel
data
b
.
x
+=
fx
;
vel
data
b
.
y
+=
fy
;
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
m
accumulation
buffer
[
a
]
+=
w
;
m
accumulation
buffer
[
b
]
+=
w
;
}
if
(
(
m
all
particle
flags
&
k
no
pressure
flags
)
!=
0
)
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
k
no
pressure
flags
)
!=
0
)
{
m
accumulation
buffer
[
i
]
=
0
;
}
}
}
float
pressure
per
weight
=
m
pressure
strength
*
get
critical
pressure
(
step
)
;
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
float
w
=
m
accumulation
buffer
[
i
]
;
float
h
=
pressure
per
weight
*
math
utils
.
max
(
0.0f
,
math
utils
.
min
(
w
,
settings
.
max
particle
weight
)
-
settings
.
min
particle
weight
)
;
m
accumulation
buffer
[
i
]
=
h
;
}
float
velocity
per
pressure
=
step
.
dt
/
(
m
density
*
m
particle
diameter
)
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
float
h
=
m
accumulation
buffer
[
a
]
+
pressure
per
weight
*
w
;
final
vec
2
f
=
temp
vec
;
final
float
coef
=
velocity
per
pressure
*
w
*
m
*
h
;
f
.
x
=
coef
*
n
.
x
;
f
.
y
=
coef
*
n
.
y
;
final
vec
2
vel
data
=
m
velocity
buffer
.
data
[
a
]
;
final
float
particle
inv
mass
=
get
particle
inv
mass
(
)
;
vel
data
.
x
-=
particle
inv
mass
*
f
.
x
;
vel
data
.
y
-=
particle
inv
mass
*
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
float
h
=
m
accumulation
buffer
[
a
]
+
m
accumulation
buffer
[
b
]
;
final
float
fx
=
velocity
per
pressure
*
w
*
h
*
n
.
x
;
final
float
fy
=
velocity
per
pressure
*
w
*
h
*
n
.
y
;
final
vec
2
vel
data
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
data
b
=
m
velocity
buffer
.
data
[
b
]
;
vel
data
a
.
x
-=
fx
;
vel
data
a
.
y
-=
fy
;
vel
data
b
.
x
+=
fx
;
vel
data
b
.
y
+=
fy
;
}
}
<SENTENCE_END/>
solve,dampingsolve%UNK% (1.93e-01)
add (9.84e-02)
get (9.78e-02)
set (8.27e-02)
%END% (7.19e-02)
solve (4.51e-02)
create (1.88e-02)
mul (1.36e-02)
calculate (7.22e-03)
update (7.22e-03)
<SENTENCE_START>
{
float
damping
=
m
damping
strength
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
final
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
final
float
temp
x
=
p
.
x
-
b
.
m
sweep
.
c
.
x
;
final
float
temp
y
=
p
.
y
-
b
.
m
sweep
.
c
.
y
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
float
vx
=
-
b
.
m
angular
velocity
*
temp
y
+
b
.
m
linear
velocity
.
x
-
vel
a
.
x
;
float
vy
=
b
.
m
angular
velocity
*
temp
x
+
b
.
m
linear
velocity
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
final
vec
2
f
=
temp
vec
;
f
.
x
=
damping
*
w
*
m
*
vn
*
n
.
x
;
f
.
y
=
damping
*
w
*
m
*
vn
*
n
.
y
;
final
float
inv
mass
=
get
particle
inv
mass
(
)
;
vel
a
.
x
+=
inv
mass
*
f
.
x
;
vel
a
.
y
+=
inv
mass
*
f
.
y
;
f
.
x
=
-
f
.
x
;
f
.
y
=
-
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
b
=
m
velocity
buffer
.
data
[
b
]
;
final
float
vx
=
vel
b
.
x
-
vel
a
.
x
;
final
float
vy
=
vel
b
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
float
fx
=
damping
*
w
*
vn
*
n
.
x
;
float
fy
=
damping
*
w
*
vn
*
n
.
y
;
vel
a
.
x
+=
fx
;
vel
a
.
y
+=
fy
;
vel
b
.
x
-=
fx
;
vel
b
.
y
-=
fy
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
damping
=
m
damping
strength
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
final
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
final
float
temp
x
=
p
.
x
-
b
.
m
sweep
.
c
.
x
;
final
float
temp
y
=
p
.
y
-
b
.
m
sweep
.
c
.
y
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
float
vx
=
-
b
.
m
angular
velocity
*
temp
y
+
b
.
m
linear
velocity
.
x
-
vel
a
.
x
;
float
vy
=
b
.
m
angular
velocity
*
temp
x
+
b
.
m
linear
velocity
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
final
vec
2
f
=
temp
vec
;
f
.
x
=
damping
*
w
*
m
*
vn
*
n
.
x
;
f
.
y
=
damping
*
w
*
m
*
vn
*
n
.
y
;
final
float
inv
mass
=
get
particle
inv
mass
(
)
;
vel
a
.
x
+=
inv
mass
*
f
.
x
;
vel
a
.
y
+=
inv
mass
*
f
.
y
;
f
.
x
=
-
f
.
x
;
f
.
y
=
-
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
b
=
m
velocity
buffer
.
data
[
b
]
;
final
float
vx
=
vel
b
.
x
-
vel
a
.
x
;
final
float
vy
=
vel
b
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
float
fx
=
damping
*
w
*
vn
*
n
.
x
;
float
fy
=
damping
*
w
*
vn
*
n
.
y
;
vel
a
.
x
+=
fx
;
vel
a
.
y
+=
fy
;
vel
b
.
x
-=
fx
;
vel
b
.
y
-=
fy
;
}
}
}
<SENTENCE_END/>
damping%END% (4.35e-01)
%UNK% (1.26e-01)
get (4.09e-02)
add (2.11e-02)
solve (1.52e-02)
to (1.42e-02)
set (1.02e-02)
2 (8.82e-03)
contact (6.43e-03)
x (5.79e-03)
<SENTENCE_START>
{
float
damping
=
m
damping
strength
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
final
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
final
float
temp
x
=
p
.
x
-
b
.
m
sweep
.
c
.
x
;
final
float
temp
y
=
p
.
y
-
b
.
m
sweep
.
c
.
y
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
float
vx
=
-
b
.
m
angular
velocity
*
temp
y
+
b
.
m
linear
velocity
.
x
-
vel
a
.
x
;
float
vy
=
b
.
m
angular
velocity
*
temp
x
+
b
.
m
linear
velocity
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
final
vec
2
f
=
temp
vec
;
f
.
x
=
damping
*
w
*
m
*
vn
*
n
.
x
;
f
.
y
=
damping
*
w
*
m
*
vn
*
n
.
y
;
final
float
inv
mass
=
get
particle
inv
mass
(
)
;
vel
a
.
x
+=
inv
mass
*
f
.
x
;
vel
a
.
y
+=
inv
mass
*
f
.
y
;
f
.
x
=
-
f
.
x
;
f
.
y
=
-
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
b
=
m
velocity
buffer
.
data
[
b
]
;
final
float
vx
=
vel
b
.
x
-
vel
a
.
x
;
final
float
vy
=
vel
b
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
float
fx
=
damping
*
w
*
vn
*
n
.
x
;
float
fy
=
damping
*
w
*
vn
*
n
.
y
;
vel
a
.
x
+=
fx
;
vel
a
.
y
+=
fy
;
vel
b
.
x
-=
fx
;
vel
b
.
y
-=
fy
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
damping
=
m
damping
strength
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
final
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
final
float
temp
x
=
p
.
x
-
b
.
m
sweep
.
c
.
x
;
final
float
temp
y
=
p
.
y
-
b
.
m
sweep
.
c
.
y
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
float
vx
=
-
b
.
m
angular
velocity
*
temp
y
+
b
.
m
linear
velocity
.
x
-
vel
a
.
x
;
float
vy
=
b
.
m
angular
velocity
*
temp
x
+
b
.
m
linear
velocity
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
final
vec
2
f
=
temp
vec
;
f
.
x
=
damping
*
w
*
m
*
vn
*
n
.
x
;
f
.
y
=
damping
*
w
*
m
*
vn
*
n
.
y
;
final
float
inv
mass
=
get
particle
inv
mass
(
)
;
vel
a
.
x
+=
inv
mass
*
f
.
x
;
vel
a
.
y
+=
inv
mass
*
f
.
y
;
f
.
x
=
-
f
.
x
;
f
.
y
=
-
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
b
=
m
velocity
buffer
.
data
[
b
]
;
final
float
vx
=
vel
b
.
x
-
vel
a
.
x
;
final
float
vy
=
vel
b
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
float
fx
=
damping
*
w
*
vn
*
n
.
x
;
float
fy
=
damping
*
w
*
vn
*
n
.
y
;
vel
a
.
x
+=
fx
;
vel
a
.
y
+=
fy
;
vel
b
.
x
-=
fx
;
vel
b
.
y
-=
fy
;
}
}
}
<SENTENCE_END/>
%END%%END% (5.43e-01)
%UNK% (8.29e-02)
get (2.43e-02)
to (1.27e-02)
add (1.05e-02)
contact (8.77e-03)
2 (8.62e-03)
solve (8.21e-03)
x (6.89e-03)
y (6.35e-03)
<SENTENCE_START>
{
float
damping
=
m
damping
strength
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
final
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
final
float
temp
x
=
p
.
x
-
b
.
m
sweep
.
c
.
x
;
final
float
temp
y
=
p
.
y
-
b
.
m
sweep
.
c
.
y
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
float
vx
=
-
b
.
m
angular
velocity
*
temp
y
+
b
.
m
linear
velocity
.
x
-
vel
a
.
x
;
float
vy
=
b
.
m
angular
velocity
*
temp
x
+
b
.
m
linear
velocity
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
final
vec
2
f
=
temp
vec
;
f
.
x
=
damping
*
w
*
m
*
vn
*
n
.
x
;
f
.
y
=
damping
*
w
*
m
*
vn
*
n
.
y
;
final
float
inv
mass
=
get
particle
inv
mass
(
)
;
vel
a
.
x
+=
inv
mass
*
f
.
x
;
vel
a
.
y
+=
inv
mass
*
f
.
y
;
f
.
x
=
-
f
.
x
;
f
.
y
=
-
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
b
=
m
velocity
buffer
.
data
[
b
]
;
final
float
vx
=
vel
b
.
x
-
vel
a
.
x
;
final
float
vy
=
vel
b
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
float
fx
=
damping
*
w
*
vn
*
n
.
x
;
float
fy
=
damping
*
w
*
vn
*
n
.
y
;
vel
a
.
x
+=
fx
;
vel
a
.
y
+=
fy
;
vel
b
.
x
-=
fx
;
vel
b
.
y
-=
fy
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
damping
=
m
damping
strength
;
for
(
int
k
=
0
;
k
<
m
body
contact
count
;
k
++
)
{
final
particle
body
contact
contact
=
m
body
contact
buffer
[
k
]
;
int
a
=
contact
.
index
;
body
b
=
contact
.
body
;
float
w
=
contact
.
weight
;
float
m
=
contact
.
mass
;
vec
2
n
=
contact
.
normal
;
vec
2
p
=
m
position
buffer
.
data
[
a
]
;
final
float
temp
x
=
p
.
x
-
b
.
m
sweep
.
c
.
x
;
final
float
temp
y
=
p
.
y
-
b
.
m
sweep
.
c
.
y
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
float
vx
=
-
b
.
m
angular
velocity
*
temp
y
+
b
.
m
linear
velocity
.
x
-
vel
a
.
x
;
float
vy
=
b
.
m
angular
velocity
*
temp
x
+
b
.
m
linear
velocity
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
final
vec
2
f
=
temp
vec
;
f
.
x
=
damping
*
w
*
m
*
vn
*
n
.
x
;
f
.
y
=
damping
*
w
*
m
*
vn
*
n
.
y
;
final
float
inv
mass
=
get
particle
inv
mass
(
)
;
vel
a
.
x
+=
inv
mass
*
f
.
x
;
vel
a
.
y
+=
inv
mass
*
f
.
y
;
f
.
x
=
-
f
.
x
;
f
.
y
=
-
f
.
y
;
b
.
apply
linear
impulse
(
f
,
p
,
true
)
;
}
}
for
(
int
k
=
0
;
k
<
m
contact
count
;
k
++
)
{
final
particle
contact
contact
=
m
contact
buffer
[
k
]
;
int
a
=
contact
.
index
a
;
int
b
=
contact
.
index
b
;
float
w
=
contact
.
weight
;
vec
2
n
=
contact
.
normal
;
final
vec
2
vel
a
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vel
b
=
m
velocity
buffer
.
data
[
b
]
;
final
float
vx
=
vel
b
.
x
-
vel
a
.
x
;
final
float
vy
=
vel
b
.
y
-
vel
a
.
y
;
float
vn
=
vx
*
n
.
x
+
vy
*
n
.
y
;
if
(
vn
<
0
)
{
float
fx
=
damping
*
w
*
vn
*
n
.
x
;
float
fy
=
damping
*
w
*
vn
*
n
.
y
;
vel
a
.
x
+=
fx
;
vel
a
.
y
+=
fy
;
vel
b
.
x
-=
fx
;
vel
b
.
y
-=
fy
;
}
}
}
<SENTENCE_END/>
solve,wallsolveset (6.34e-01)
get (3.73e-02)
reset (2.49e-02)
%UNK% (2.34e-02)
%END% (1.72e-02)
clear (1.51e-02)
update (1.29e-02)
init (9.22e-03)
create (8.83e-03)
end (6.40e-03)
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
final
vec
2
r
=
m
velocity
buffer
.
data
[
i
]
;
r
.
x
=
0.0f
;
r
.
y
=
0.0f
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
final
vec
2
r
=
m
velocity
buffer
.
data
[
i
]
;
r
.
x
=
0.0f
;
r
.
y
=
0.0f
;
}
}
}
<SENTENCE_END/>
wall%END% (4.22e-01)
flags (2.37e-01)
buffer (9.19e-02)
velocity (4.13e-02)
particle (1.97e-02)
vec (1.67e-02)
y (1.20e-02)
%UNK% (9.59e-03)
2 (9.43e-03)
m (8.78e-03)
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
final
vec
2
r
=
m
velocity
buffer
.
data
[
i
]
;
r
.
x
=
0.0f
;
r
.
y
=
0.0f
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
final
vec
2
r
=
m
velocity
buffer
.
data
[
i
]
;
r
.
x
=
0.0f
;
r
.
y
=
0.0f
;
}
}
}
<SENTENCE_END/>
%END%%END% (8.60e-01)
buffer (3.19e-02)
r (5.29e-03)
2 (4.88e-03)
%UNK% (4.82e-03)
i (4.82e-03)
velocity (4.03e-03)
particle (3.43e-03)
type (2.93e-03)
flags (1.93e-03)
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
final
vec
2
r
=
m
velocity
buffer
.
data
[
i
]
;
r
.
x
=
0.0f
;
r
.
y
=
0.0f
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
int
i
=
0
;
i
<
m
count
;
i
++
)
{
if
(
(
m
flags
buffer
.
data
[
i
]
&
particle
type
.
b
2
wall
particle
)
!=
0
)
{
final
vec
2
r
=
m
velocity
buffer
.
data
[
i
]
;
r
.
x
=
0.0f
;
r
.
y
=
0.0f
;
}
}
}
<SENTENCE_END/>
solve,rigidsolveget (1.37e-01)
set (1.22e-01)
mul (6.03e-02)
%UNK% (6.01e-02)
transform (5.68e-02)
add (5.59e-02)
%END% (4.43e-02)
create (3.09e-02)
rotate (2.56e-02)
calculate (2.37e-02)
<SENTENCE_START>
{
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
if
(
(
group
.
m
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
group
.
update
statistics
(
)
;
vec
2
temp
=
temp
vec
;
vec
2
cross
=
temp
vec
2
;
rot
rotation
=
temp
rot
;
rotation
.
set
(
step
.
dt
*
group
.
m
angular
velocity
)
;
rot
.
mul
to
out
unsafe
(
rotation
,
group
.
m
center
,
cross
)
;
temp
.
set
(
group
.
m
linear
velocity
)
.
mul
local
(
step
.
dt
)
.
add
local
(
group
.
m
center
)
.
sub
local
(
cross
)
;
temp
xf
.
p
.
set
(
temp
)
;
temp
xf
.
q
.
set
(
rotation
)
;
transform
.
mul
to
out
(
temp
xf
,
group
.
m
transform
,
group
.
m
transform
)
;
final
transform
velocity
transform
=
temp
xf
2
;
velocity
transform
.
p
.
x
=
step
.
inv
dt
*
temp
xf
.
p
.
x
;
velocity
transform
.
p
.
y
=
step
.
inv
dt
*
temp
xf
.
p
.
y
;
velocity
transform
.
q
.
s
=
step
.
inv
dt
*
temp
xf
.
q
.
s
;
velocity
transform
.
q
.
c
=
step
.
inv
dt
*
(
temp
xf
.
q
.
c
-
1
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
transform
.
mul
to
out
unsafe
(
velocity
transform
,
m
position
buffer
.
data
[
i
]
,
m
velocity
buffer
.
data
[
i
]
)
;
}
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
if
(
(
group
.
m
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
group
.
update
statistics
(
)
;
vec
2
temp
=
temp
vec
;
vec
2
cross
=
temp
vec
2
;
rot
rotation
=
temp
rot
;
rotation
.
set
(
step
.
dt
*
group
.
m
angular
velocity
)
;
rot
.
mul
to
out
unsafe
(
rotation
,
group
.
m
center
,
cross
)
;
temp
.
set
(
group
.
m
linear
velocity
)
.
mul
local
(
step
.
dt
)
.
add
local
(
group
.
m
center
)
.
sub
local
(
cross
)
;
temp
xf
.
p
.
set
(
temp
)
;
temp
xf
.
q
.
set
(
rotation
)
;
transform
.
mul
to
out
(
temp
xf
,
group
.
m
transform
,
group
.
m
transform
)
;
final
transform
velocity
transform
=
temp
xf
2
;
velocity
transform
.
p
.
x
=
step
.
inv
dt
*
temp
xf
.
p
.
x
;
velocity
transform
.
p
.
y
=
step
.
inv
dt
*
temp
xf
.
p
.
y
;
velocity
transform
.
q
.
s
=
step
.
inv
dt
*
temp
xf
.
q
.
s
;
velocity
transform
.
q
.
c
=
step
.
inv
dt
*
(
temp
xf
.
q
.
c
-
1
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
transform
.
mul
to
out
unsafe
(
velocity
transform
,
m
position
buffer
.
data
[
i
]
,
m
velocity
buffer
.
data
[
i
]
)
;
}
}
}
}
<SENTENCE_END/>
rigid%END% (4.06e-01)
%UNK% (5.08e-02)
get (4.46e-02)
transform (4.24e-02)
to (2.31e-02)
set (1.78e-02)
group (1.69e-02)
add (1.40e-02)
mul (1.35e-02)
out (1.03e-02)
<SENTENCE_START>
{
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
if
(
(
group
.
m
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
group
.
update
statistics
(
)
;
vec
2
temp
=
temp
vec
;
vec
2
cross
=
temp
vec
2
;
rot
rotation
=
temp
rot
;
rotation
.
set
(
step
.
dt
*
group
.
m
angular
velocity
)
;
rot
.
mul
to
out
unsafe
(
rotation
,
group
.
m
center
,
cross
)
;
temp
.
set
(
group
.
m
linear
velocity
)
.
mul
local
(
step
.
dt
)
.
add
local
(
group
.
m
center
)
.
sub
local
(
cross
)
;
temp
xf
.
p
.
set
(
temp
)
;
temp
xf
.
q
.
set
(
rotation
)
;
transform
.
mul
to
out
(
temp
xf
,
group
.
m
transform
,
group
.
m
transform
)
;
final
transform
velocity
transform
=
temp
xf
2
;
velocity
transform
.
p
.
x
=
step
.
inv
dt
*
temp
xf
.
p
.
x
;
velocity
transform
.
p
.
y
=
step
.
inv
dt
*
temp
xf
.
p
.
y
;
velocity
transform
.
q
.
s
=
step
.
inv
dt
*
temp
xf
.
q
.
s
;
velocity
transform
.
q
.
c
=
step
.
inv
dt
*
(
temp
xf
.
q
.
c
-
1
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
transform
.
mul
to
out
unsafe
(
velocity
transform
,
m
position
buffer
.
data
[
i
]
,
m
velocity
buffer
.
data
[
i
]
)
;
}
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
if
(
(
group
.
m
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
group
.
update
statistics
(
)
;
vec
2
temp
=
temp
vec
;
vec
2
cross
=
temp
vec
2
;
rot
rotation
=
temp
rot
;
rotation
.
set
(
step
.
dt
*
group
.
m
angular
velocity
)
;
rot
.
mul
to
out
unsafe
(
rotation
,
group
.
m
center
,
cross
)
;
temp
.
set
(
group
.
m
linear
velocity
)
.
mul
local
(
step
.
dt
)
.
add
local
(
group
.
m
center
)
.
sub
local
(
cross
)
;
temp
xf
.
p
.
set
(
temp
)
;
temp
xf
.
q
.
set
(
rotation
)
;
transform
.
mul
to
out
(
temp
xf
,
group
.
m
transform
,
group
.
m
transform
)
;
final
transform
velocity
transform
=
temp
xf
2
;
velocity
transform
.
p
.
x
=
step
.
inv
dt
*
temp
xf
.
p
.
x
;
velocity
transform
.
p
.
y
=
step
.
inv
dt
*
temp
xf
.
p
.
y
;
velocity
transform
.
q
.
s
=
step
.
inv
dt
*
temp
xf
.
q
.
s
;
velocity
transform
.
q
.
c
=
step
.
inv
dt
*
(
temp
xf
.
q
.
c
-
1
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
transform
.
mul
to
out
unsafe
(
velocity
transform
,
m
position
buffer
.
data
[
i
]
,
m
velocity
buffer
.
data
[
i
]
)
;
}
}
}
}
<SENTENCE_END/>
%END%%END% (5.69e-01)
group (2.99e-02)
%UNK% (2.93e-02)
transform (2.60e-02)
to (1.69e-02)
get (1.50e-02)
out (8.30e-03)
set (6.96e-03)
mul (6.92e-03)
temp (6.49e-03)
<SENTENCE_START>
{
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
if
(
(
group
.
m
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
group
.
update
statistics
(
)
;
vec
2
temp
=
temp
vec
;
vec
2
cross
=
temp
vec
2
;
rot
rotation
=
temp
rot
;
rotation
.
set
(
step
.
dt
*
group
.
m
angular
velocity
)
;
rot
.
mul
to
out
unsafe
(
rotation
,
group
.
m
center
,
cross
)
;
temp
.
set
(
group
.
m
linear
velocity
)
.
mul
local
(
step
.
dt
)
.
add
local
(
group
.
m
center
)
.
sub
local
(
cross
)
;
temp
xf
.
p
.
set
(
temp
)
;
temp
xf
.
q
.
set
(
rotation
)
;
transform
.
mul
to
out
(
temp
xf
,
group
.
m
transform
,
group
.
m
transform
)
;
final
transform
velocity
transform
=
temp
xf
2
;
velocity
transform
.
p
.
x
=
step
.
inv
dt
*
temp
xf
.
p
.
x
;
velocity
transform
.
p
.
y
=
step
.
inv
dt
*
temp
xf
.
p
.
y
;
velocity
transform
.
q
.
s
=
step
.
inv
dt
*
temp
xf
.
q
.
s
;
velocity
transform
.
q
.
c
=
step
.
inv
dt
*
(
temp
xf
.
q
.
c
-
1
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
transform
.
mul
to
out
unsafe
(
velocity
transform
,
m
position
buffer
.
data
[
i
]
,
m
velocity
buffer
.
data
[
i
]
)
;
}
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
for
(
particle
group
group
=
m
group
list
;
group
!=
null
;
group
=
group
.
get
next
(
)
)
{
if
(
(
group
.
m
group
flags
&
particle
group
type
.
b
2
rigid
particle
group
)
!=
0
)
{
group
.
update
statistics
(
)
;
vec
2
temp
=
temp
vec
;
vec
2
cross
=
temp
vec
2
;
rot
rotation
=
temp
rot
;
rotation
.
set
(
step
.
dt
*
group
.
m
angular
velocity
)
;
rot
.
mul
to
out
unsafe
(
rotation
,
group
.
m
center
,
cross
)
;
temp
.
set
(
group
.
m
linear
velocity
)
.
mul
local
(
step
.
dt
)
.
add
local
(
group
.
m
center
)
.
sub
local
(
cross
)
;
temp
xf
.
p
.
set
(
temp
)
;
temp
xf
.
q
.
set
(
rotation
)
;
transform
.
mul
to
out
(
temp
xf
,
group
.
m
transform
,
group
.
m
transform
)
;
final
transform
velocity
transform
=
temp
xf
2
;
velocity
transform
.
p
.
x
=
step
.
inv
dt
*
temp
xf
.
p
.
x
;
velocity
transform
.
p
.
y
=
step
.
inv
dt
*
temp
xf
.
p
.
y
;
velocity
transform
.
q
.
s
=
step
.
inv
dt
*
temp
xf
.
q
.
s
;
velocity
transform
.
q
.
c
=
step
.
inv
dt
*
(
temp
xf
.
q
.
c
-
1
)
;
for
(
int
i
=
group
.
m
first
index
;
i
<
group
.
m
last
index
;
i
++
)
{
transform
.
mul
to
out
unsafe
(
velocity
transform
,
m
position
buffer
.
data
[
i
]
,
m
velocity
buffer
.
data
[
i
]
)
;
}
}
}
}
<SENTENCE_END/>
solve,elasticsolve%UNK% (6.14e-01)
set (3.19e-02)
get (2.69e-02)
create (1.64e-02)
mul (1.49e-02)
to (1.42e-02)
add (1.27e-02)
nearest (8.11e-03)
%END% (7.94e-03)
write (6.80e-03)
<SENTENCE_START>
{
float
elastic
strength
=
step
.
inv
dt
*
m
elastic
strength
;
for
(
int
k
=
0
;
k
<
m
triad
count
;
k
++
)
{
final
triad
triad
=
m
triad
buffer
[
k
]
;
if
(
(
triad
.
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
int
a
=
triad
.
index
a
;
int
b
=
triad
.
index
b
;
int
c
=
triad
.
index
c
;
final
vec
2
oa
=
triad
.
pa
;
final
vec
2
ob
=
triad
.
pb
;
final
vec
2
oc
=
triad
.
pc
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
vec
2
pc
=
m
position
buffer
.
data
[
c
]
;
final
float
px
=
1f
/
3
*
(
pa
.
x
+
pb
.
x
+
pc
.
x
)
;
final
float
py
=
1f
/
3
*
(
pa
.
y
+
pb
.
y
+
pc
.
y
)
;
float
rs
=
vec
2
.
cross
(
oa
,
pa
)
+
vec
2
.
cross
(
ob
,
pb
)
+
vec
2
.
cross
(
oc
,
pc
)
;
float
rc
=
vec
2
.
dot
(
oa
,
pa
)
+
vec
2
.
dot
(
ob
,
pb
)
+
vec
2
.
dot
(
oc
,
pc
)
;
float
r
2
=
rs
*
rs
+
rc
*
rc
;
float
inv
r
=
r
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
1f
/
r
2
)
;
rs
*=
inv
r
;
rc
*=
inv
r
;
final
float
strength
=
elastic
strength
*
triad
.
strength
;
final
float
roax
=
rc
*
oa
.
x
-
rs
*
oa
.
y
;
final
float
roay
=
rs
*
oa
.
x
+
rc
*
oa
.
y
;
final
float
robx
=
rc
*
ob
.
x
-
rs
*
ob
.
y
;
final
float
roby
=
rs
*
ob
.
x
+
rc
*
ob
.
y
;
final
float
rocx
=
rc
*
oc
.
x
-
rs
*
oc
.
y
;
final
float
rocy
=
rs
*
oc
.
x
+
rc
*
oc
.
y
;
final
vec
2
va
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vb
=
m
velocity
buffer
.
data
[
b
]
;
final
vec
2
vc
=
m
velocity
buffer
.
data
[
c
]
;
va
.
x
+=
strength
*
(
roax
-
(
pa
.
x
-
px
)
)
;
va
.
y
+=
strength
*
(
roay
-
(
pa
.
y
-
py
)
)
;
vb
.
x
+=
strength
*
(
robx
-
(
pb
.
x
-
px
)
)
;
vb
.
y
+=
strength
*
(
roby
-
(
pb
.
y
-
py
)
)
;
vc
.
x
+=
strength
*
(
rocx
-
(
pc
.
x
-
px
)
)
;
vc
.
y
+=
strength
*
(
rocy
-
(
pc
.
y
-
py
)
)
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
elastic
strength
=
step
.
inv
dt
*
m
elastic
strength
;
for
(
int
k
=
0
;
k
<
m
triad
count
;
k
++
)
{
final
triad
triad
=
m
triad
buffer
[
k
]
;
if
(
(
triad
.
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
int
a
=
triad
.
index
a
;
int
b
=
triad
.
index
b
;
int
c
=
triad
.
index
c
;
final
vec
2
oa
=
triad
.
pa
;
final
vec
2
ob
=
triad
.
pb
;
final
vec
2
oc
=
triad
.
pc
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
vec
2
pc
=
m
position
buffer
.
data
[
c
]
;
final
float
px
=
1f
/
3
*
(
pa
.
x
+
pb
.
x
+
pc
.
x
)
;
final
float
py
=
1f
/
3
*
(
pa
.
y
+
pb
.
y
+
pc
.
y
)
;
float
rs
=
vec
2
.
cross
(
oa
,
pa
)
+
vec
2
.
cross
(
ob
,
pb
)
+
vec
2
.
cross
(
oc
,
pc
)
;
float
rc
=
vec
2
.
dot
(
oa
,
pa
)
+
vec
2
.
dot
(
ob
,
pb
)
+
vec
2
.
dot
(
oc
,
pc
)
;
float
r
2
=
rs
*
rs
+
rc
*
rc
;
float
inv
r
=
r
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
1f
/
r
2
)
;
rs
*=
inv
r
;
rc
*=
inv
r
;
final
float
strength
=
elastic
strength
*
triad
.
strength
;
final
float
roax
=
rc
*
oa
.
x
-
rs
*
oa
.
y
;
final
float
roay
=
rs
*
oa
.
x
+
rc
*
oa
.
y
;
final
float
robx
=
rc
*
ob
.
x
-
rs
*
ob
.
y
;
final
float
roby
=
rs
*
ob
.
x
+
rc
*
ob
.
y
;
final
float
rocx
=
rc
*
oc
.
x
-
rs
*
oc
.
y
;
final
float
rocy
=
rs
*
oc
.
x
+
rc
*
oc
.
y
;
final
vec
2
va
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vb
=
m
velocity
buffer
.
data
[
b
]
;
final
vec
2
vc
=
m
velocity
buffer
.
data
[
c
]
;
va
.
x
+=
strength
*
(
roax
-
(
pa
.
x
-
px
)
)
;
va
.
y
+=
strength
*
(
roay
-
(
pa
.
y
-
py
)
)
;
vb
.
x
+=
strength
*
(
robx
-
(
pb
.
x
-
px
)
)
;
vb
.
y
+=
strength
*
(
roby
-
(
pb
.
y
-
py
)
)
;
vc
.
x
+=
strength
*
(
rocx
-
(
pc
.
x
-
px
)
)
;
vc
.
y
+=
strength
*
(
rocy
-
(
pc
.
y
-
py
)
)
;
}
}
}
<SENTENCE_END/>
elastic%UNK% (5.49e-01)
%END% (1.22e-01)
to (2.14e-02)
2 (1.34e-02)
get (1.17e-02)
set (8.33e-03)
create (8.21e-03)
add (6.34e-03)
out (5.11e-03)
mul (4.98e-03)
<SENTENCE_START>
{
float
elastic
strength
=
step
.
inv
dt
*
m
elastic
strength
;
for
(
int
k
=
0
;
k
<
m
triad
count
;
k
++
)
{
final
triad
triad
=
m
triad
buffer
[
k
]
;
if
(
(
triad
.
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
int
a
=
triad
.
index
a
;
int
b
=
triad
.
index
b
;
int
c
=
triad
.
index
c
;
final
vec
2
oa
=
triad
.
pa
;
final
vec
2
ob
=
triad
.
pb
;
final
vec
2
oc
=
triad
.
pc
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
vec
2
pc
=
m
position
buffer
.
data
[
c
]
;
final
float
px
=
1f
/
3
*
(
pa
.
x
+
pb
.
x
+
pc
.
x
)
;
final
float
py
=
1f
/
3
*
(
pa
.
y
+
pb
.
y
+
pc
.
y
)
;
float
rs
=
vec
2
.
cross
(
oa
,
pa
)
+
vec
2
.
cross
(
ob
,
pb
)
+
vec
2
.
cross
(
oc
,
pc
)
;
float
rc
=
vec
2
.
dot
(
oa
,
pa
)
+
vec
2
.
dot
(
ob
,
pb
)
+
vec
2
.
dot
(
oc
,
pc
)
;
float
r
2
=
rs
*
rs
+
rc
*
rc
;
float
inv
r
=
r
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
1f
/
r
2
)
;
rs
*=
inv
r
;
rc
*=
inv
r
;
final
float
strength
=
elastic
strength
*
triad
.
strength
;
final
float
roax
=
rc
*
oa
.
x
-
rs
*
oa
.
y
;
final
float
roay
=
rs
*
oa
.
x
+
rc
*
oa
.
y
;
final
float
robx
=
rc
*
ob
.
x
-
rs
*
ob
.
y
;
final
float
roby
=
rs
*
ob
.
x
+
rc
*
ob
.
y
;
final
float
rocx
=
rc
*
oc
.
x
-
rs
*
oc
.
y
;
final
float
rocy
=
rs
*
oc
.
x
+
rc
*
oc
.
y
;
final
vec
2
va
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vb
=
m
velocity
buffer
.
data
[
b
]
;
final
vec
2
vc
=
m
velocity
buffer
.
data
[
c
]
;
va
.
x
+=
strength
*
(
roax
-
(
pa
.
x
-
px
)
)
;
va
.
y
+=
strength
*
(
roay
-
(
pa
.
y
-
py
)
)
;
vb
.
x
+=
strength
*
(
robx
-
(
pb
.
x
-
px
)
)
;
vb
.
y
+=
strength
*
(
roby
-
(
pb
.
y
-
py
)
)
;
vc
.
x
+=
strength
*
(
rocx
-
(
pc
.
x
-
px
)
)
;
vc
.
y
+=
strength
*
(
rocy
-
(
pc
.
y
-
py
)
)
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
elastic
strength
=
step
.
inv
dt
*
m
elastic
strength
;
for
(
int
k
=
0
;
k
<
m
triad
count
;
k
++
)
{
final
triad
triad
=
m
triad
buffer
[
k
]
;
if
(
(
triad
.
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
int
a
=
triad
.
index
a
;
int
b
=
triad
.
index
b
;
int
c
=
triad
.
index
c
;
final
vec
2
oa
=
triad
.
pa
;
final
vec
2
ob
=
triad
.
pb
;
final
vec
2
oc
=
triad
.
pc
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
vec
2
pc
=
m
position
buffer
.
data
[
c
]
;
final
float
px
=
1f
/
3
*
(
pa
.
x
+
pb
.
x
+
pc
.
x
)
;
final
float
py
=
1f
/
3
*
(
pa
.
y
+
pb
.
y
+
pc
.
y
)
;
float
rs
=
vec
2
.
cross
(
oa
,
pa
)
+
vec
2
.
cross
(
ob
,
pb
)
+
vec
2
.
cross
(
oc
,
pc
)
;
float
rc
=
vec
2
.
dot
(
oa
,
pa
)
+
vec
2
.
dot
(
ob
,
pb
)
+
vec
2
.
dot
(
oc
,
pc
)
;
float
r
2
=
rs
*
rs
+
rc
*
rc
;
float
inv
r
=
r
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
1f
/
r
2
)
;
rs
*=
inv
r
;
rc
*=
inv
r
;
final
float
strength
=
elastic
strength
*
triad
.
strength
;
final
float
roax
=
rc
*
oa
.
x
-
rs
*
oa
.
y
;
final
float
roay
=
rs
*
oa
.
x
+
rc
*
oa
.
y
;
final
float
robx
=
rc
*
ob
.
x
-
rs
*
ob
.
y
;
final
float
roby
=
rs
*
ob
.
x
+
rc
*
ob
.
y
;
final
float
rocx
=
rc
*
oc
.
x
-
rs
*
oc
.
y
;
final
float
rocy
=
rs
*
oc
.
x
+
rc
*
oc
.
y
;
final
vec
2
va
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vb
=
m
velocity
buffer
.
data
[
b
]
;
final
vec
2
vc
=
m
velocity
buffer
.
data
[
c
]
;
va
.
x
+=
strength
*
(
roax
-
(
pa
.
x
-
px
)
)
;
va
.
y
+=
strength
*
(
roay
-
(
pa
.
y
-
py
)
)
;
vb
.
x
+=
strength
*
(
robx
-
(
pb
.
x
-
px
)
)
;
vb
.
y
+=
strength
*
(
roby
-
(
pb
.
y
-
py
)
)
;
vc
.
x
+=
strength
*
(
rocx
-
(
pc
.
x
-
px
)
)
;
vc
.
y
+=
strength
*
(
rocy
-
(
pc
.
y
-
py
)
)
;
}
}
}
<SENTENCE_END/>
%END%%UNK% (4.46e-01)
%END% (2.59e-01)
to (2.14e-02)
2 (1.56e-02)
get (7.51e-03)
create (5.60e-03)
out (5.31e-03)
add (4.54e-03)
in (4.54e-03)
set (4.15e-03)
<SENTENCE_START>
{
float
elastic
strength
=
step
.
inv
dt
*
m
elastic
strength
;
for
(
int
k
=
0
;
k
<
m
triad
count
;
k
++
)
{
final
triad
triad
=
m
triad
buffer
[
k
]
;
if
(
(
triad
.
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
int
a
=
triad
.
index
a
;
int
b
=
triad
.
index
b
;
int
c
=
triad
.
index
c
;
final
vec
2
oa
=
triad
.
pa
;
final
vec
2
ob
=
triad
.
pb
;
final
vec
2
oc
=
triad
.
pc
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
vec
2
pc
=
m
position
buffer
.
data
[
c
]
;
final
float
px
=
1f
/
3
*
(
pa
.
x
+
pb
.
x
+
pc
.
x
)
;
final
float
py
=
1f
/
3
*
(
pa
.
y
+
pb
.
y
+
pc
.
y
)
;
float
rs
=
vec
2
.
cross
(
oa
,
pa
)
+
vec
2
.
cross
(
ob
,
pb
)
+
vec
2
.
cross
(
oc
,
pc
)
;
float
rc
=
vec
2
.
dot
(
oa
,
pa
)
+
vec
2
.
dot
(
ob
,
pb
)
+
vec
2
.
dot
(
oc
,
pc
)
;
float
r
2
=
rs
*
rs
+
rc
*
rc
;
float
inv
r
=
r
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
1f
/
r
2
)
;
rs
*=
inv
r
;
rc
*=
inv
r
;
final
float
strength
=
elastic
strength
*
triad
.
strength
;
final
float
roax
=
rc
*
oa
.
x
-
rs
*
oa
.
y
;
final
float
roay
=
rs
*
oa
.
x
+
rc
*
oa
.
y
;
final
float
robx
=
rc
*
ob
.
x
-
rs
*
ob
.
y
;
final
float
roby
=
rs
*
ob
.
x
+
rc
*
ob
.
y
;
final
float
rocx
=
rc
*
oc
.
x
-
rs
*
oc
.
y
;
final
float
rocy
=
rs
*
oc
.
x
+
rc
*
oc
.
y
;
final
vec
2
va
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vb
=
m
velocity
buffer
.
data
[
b
]
;
final
vec
2
vc
=
m
velocity
buffer
.
data
[
c
]
;
va
.
x
+=
strength
*
(
roax
-
(
pa
.
x
-
px
)
)
;
va
.
y
+=
strength
*
(
roay
-
(
pa
.
y
-
py
)
)
;
vb
.
x
+=
strength
*
(
robx
-
(
pb
.
x
-
px
)
)
;
vb
.
y
+=
strength
*
(
roby
-
(
pb
.
y
-
py
)
)
;
vc
.
x
+=
strength
*
(
rocx
-
(
pc
.
x
-
px
)
)
;
vc
.
y
+=
strength
*
(
rocy
-
(
pc
.
y
-
py
)
)
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
elastic
strength
=
step
.
inv
dt
*
m
elastic
strength
;
for
(
int
k
=
0
;
k
<
m
triad
count
;
k
++
)
{
final
triad
triad
=
m
triad
buffer
[
k
]
;
if
(
(
triad
.
flags
&
particle
type
.
b
2
elastic
particle
)
!=
0
)
{
int
a
=
triad
.
index
a
;
int
b
=
triad
.
index
b
;
int
c
=
triad
.
index
c
;
final
vec
2
oa
=
triad
.
pa
;
final
vec
2
ob
=
triad
.
pb
;
final
vec
2
oc
=
triad
.
pc
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
vec
2
pc
=
m
position
buffer
.
data
[
c
]
;
final
float
px
=
1f
/
3
*
(
pa
.
x
+
pb
.
x
+
pc
.
x
)
;
final
float
py
=
1f
/
3
*
(
pa
.
y
+
pb
.
y
+
pc
.
y
)
;
float
rs
=
vec
2
.
cross
(
oa
,
pa
)
+
vec
2
.
cross
(
ob
,
pb
)
+
vec
2
.
cross
(
oc
,
pc
)
;
float
rc
=
vec
2
.
dot
(
oa
,
pa
)
+
vec
2
.
dot
(
ob
,
pb
)
+
vec
2
.
dot
(
oc
,
pc
)
;
float
r
2
=
rs
*
rs
+
rc
*
rc
;
float
inv
r
=
r
2
==
0
?
float
.
max
value
:
math
utils
.
sqrt
(
1f
/
r
2
)
;
rs
*=
inv
r
;
rc
*=
inv
r
;
final
float
strength
=
elastic
strength
*
triad
.
strength
;
final
float
roax
=
rc
*
oa
.
x
-
rs
*
oa
.
y
;
final
float
roay
=
rs
*
oa
.
x
+
rc
*
oa
.
y
;
final
float
robx
=
rc
*
ob
.
x
-
rs
*
ob
.
y
;
final
float
roby
=
rs
*
ob
.
x
+
rc
*
ob
.
y
;
final
float
rocx
=
rc
*
oc
.
x
-
rs
*
oc
.
y
;
final
float
rocy
=
rs
*
oc
.
x
+
rc
*
oc
.
y
;
final
vec
2
va
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vb
=
m
velocity
buffer
.
data
[
b
]
;
final
vec
2
vc
=
m
velocity
buffer
.
data
[
c
]
;
va
.
x
+=
strength
*
(
roax
-
(
pa
.
x
-
px
)
)
;
va
.
y
+=
strength
*
(
roay
-
(
pa
.
y
-
py
)
)
;
vb
.
x
+=
strength
*
(
robx
-
(
pb
.
x
-
px
)
)
;
vb
.
y
+=
strength
*
(
roby
-
(
pb
.
y
-
py
)
)
;
vc
.
x
+=
strength
*
(
rocx
-
(
pc
.
x
-
px
)
)
;
vc
.
y
+=
strength
*
(
rocy
-
(
pc
.
y
-
py
)
)
;
}
}
}
<SENTENCE_END/>
solve,springsolve%UNK% (3.15e-01)
set (8.11e-02)
%END% (7.09e-02)
add (7.07e-02)
get (2.66e-02)
create (2.50e-02)
to (1.32e-02)
solve (8.94e-03)
initialize (8.39e-03)
nearest (7.67e-03)
<SENTENCE_START>
{
float
spring
strength
=
step
.
inv
dt
*
m
spring
strength
;
for
(
int
k
=
0
;
k
<
m
pair
count
;
k
++
)
{
final
pair
pair
=
m
pair
buffer
[
k
]
;
if
(
(
pair
.
flags
&
particle
type
.
b
2
spring
particle
)
!=
0
)
{
int
a
=
pair
.
index
a
;
int
b
=
pair
.
index
b
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
float
dx
=
pb
.
x
-
pa
.
x
;
final
float
dy
=
pb
.
y
-
pa
.
y
;
float
r
0
=
pair
.
distance
;
float
r
1
=
math
utils
.
sqrt
(
dx
*
dx
+
dy
*
dy
)
;
if
(
r
1
==
0
)
r
1
=
float
.
max
value
;
float
strength
=
spring
strength
*
pair
.
strength
;
final
float
fx
=
strength
*
(
r
0
-
r
1
)
/
r
1
*
dx
;
final
float
fy
=
strength
*
(
r
0
-
r
1
)
/
r
1
*
dy
;
final
vec
2
va
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vb
=
m
velocity
buffer
.
data
[
b
]
;
va
.
x
-=
fx
;
va
.
y
-=
fy
;
vb
.
x
+=
fx
;
vb
.
y
+=
fy
;
}
}
}
<SENTENCE_END/>
<SENTENCE_START>
{
float
spring
strength
=
step
.
inv
dt
*
m
spring
strength
;
for
(
int
k
=
0
;
k
<
m
pair
count
;
k
++
)
{
final
pair
pair
=
m
pair
buffer
[
k
]
;
if
(
(
pair
.
flags
&
particle
type
.
b
2
spring
particle
)
!=
0
)
{
int
a
=
pair
.
index
a
;
int
b
=
pair
.
index
b
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
float
dx
=
pb
.
x
-
pa
.
x
;
final
float
dy
=
pb
.
y
-
pa
.
y
;
float
r
0
=
pair
.
distance
;
float
r
1
=
math
utils
.
sqrt
(
dx
*
dx
+
dy
*
dy
)
;
if
(
r
1
==
0
)
r
1
=
float
.
max
value
;
float
strength
=
spring
strength
*
pair
.
strength
;
final
float
fx
=
strength
*
(
r
0
-
r
1
)
/
r
1
*
dx
;
final
float
fy
=
strength
*
(
r
0
-
r
1
)
/
r
1
*
dy
;
final
vec
2
va
=
m
velocity
buffer
.
data
[
a
]
;
final
vec
2
vb
=
m
velocity
buffer
.
data
[
b
]
;
va
.
x
-=
fx
;
va
.
y
-=
fy
;
vb
.
x
+=
fx
;
vb
.
y
+=
fy
;
}
}
}
<SENTENCE_END/>
spring%END% (5.80e-01)
%UNK% (1.21e-01)
to (1.34e-02)
get (1.01e-02)
set (8.06e-03)
2 (7.44e-03)
create (4.65e-03)
add (4.24e-03)
buffer (3.55e-03)
float (3.52e-03)
<SENTENCE_START>
{
float
spring
strength
=
step
.
inv
dt
*
m
spring
strength
;
for
(
int
k
=
0
;
k
<
m
pair
count
;
k
++
)
{
final
pair
pair
=
m
pair
buffer
[
k
]
;
if
(
(
pair
.
flags
&
particle
type
.
b
2
spring
particle
)
!=
0
)
{
int
a
=
pair
.
index
a
;
int
b
=
pair
.
index
b
;
final
vec
2
pa
=
m
position
buffer
.
data
[
a
]
;
final
vec
2
pb
=
m
position
buffer
.
data
[
b
]
;
final
float
dx
=
pb
.
x
-
pa
.
x
;
final
float
dy
=
pb
.
y
-
pa
.
y
;
float
r
0
=
pair
.
distance
;
float
r
1
=
math
utils
.
sqrt
(
dx
*
dx
+