Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[truffle] Implement a bunch of _n trigonometric ops
nqp::<asec asin acos atan atan2 cos cosh sin sinh sec sech tan tanh>
- Loading branch information
1 parent
4c36904
commit afa9494
Showing
14 changed files
with
267 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPAcosNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "acos_n") | ||
public final class NQPAcosNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPAcosNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.acos(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPAsecNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "asec_n") | ||
public final class NQPAsecNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPAsecNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.acos(1 / argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPAsinNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "asin_n") | ||
public final class NQPAsinNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPAsinNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.asin(argNode.executeNum(frame)); | ||
} | ||
} |
22 changes: 22 additions & 0 deletions
22
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPAtan2NumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "atan2_n") | ||
public final class NQPAtan2NumNode extends NQPNode { | ||
@Child private NQPNode leftNode; | ||
@Child private NQPNode rightNode; | ||
|
||
@Deserializer | ||
public NQPAtan2NumNode(NQPNode leftNode, NQPNode rightNode) { | ||
this.leftNode = leftNode; | ||
this.rightNode = rightNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.atan2(leftNode.executeNum(frame), rightNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPAtanNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "atan_n") | ||
public final class NQPAtanNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPAtanNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.atan(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPCosNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "cos_n") | ||
public final class NQPCosNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPCosNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.cos(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPCoshNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "cosh_n") | ||
public final class NQPCoshNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPCoshNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.cosh(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPSecNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "sec_n") | ||
public final class NQPSecNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPSecNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return 1 / Math.cos(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPSechNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "sech_n") | ||
public final class NQPSechNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPSechNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return 1 / Math.cosh(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPSinNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "sin_n") | ||
public final class NQPSinNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPSinNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.sin(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPSinhNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "sinh_n") | ||
public final class NQPSinhNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPSinhNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.sinh(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPTanNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "tan_n") | ||
public final class NQPTanNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPTanNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.tan(argNode.executeNum(frame)); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPTanhNumNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package org.perl6.nqp.truffle.nodes.expression; | ||
import com.oracle.truffle.api.frame.VirtualFrame; | ||
import com.oracle.truffle.api.nodes.NodeInfo; | ||
import org.perl6.nqp.truffle.nodes.NQPNode; | ||
import org.perl6.nqp.dsl.Deserializer; | ||
|
||
@NodeInfo(shortName = "tanh_n") | ||
public final class NQPTanhNumNode extends NQPNode { | ||
@Child private NQPNode argNode; | ||
|
||
@Deserializer | ||
public NQPTanhNumNode(NQPNode argNode) { | ||
this.argNode = argNode; | ||
} | ||
|
||
@Override | ||
public double executeNum(VirtualFrame frame) { | ||
return Math.tanh(argNode.executeNum(frame)); | ||
} | ||
} |