Skip to content

Commit 7c84a11

Browse files
Merge pull request #55 from SpiceSharp/development
Bug fix
2 parents b7eb489 + 9c0d9d2 commit 7c84a11

3 files changed

Lines changed: 35 additions & 18 deletions

File tree

SpiceSharpBehavioral/Builders/Functions/RealILState.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -70,25 +70,25 @@ public override void Push(Node node)
7070
case NodeTypes.GreaterThan:
7171
Push(bn.Left);
7272
Push(bn.Right);
73-
PushCheck(OpCodes.Bgt_S, 1.0, 0.0);
73+
PushCheck(OpCodes.Bgt, 1.0, 0.0);
7474
return;
7575

7676
case NodeTypes.LessThan:
7777
Push(bn.Left);
7878
Push(bn.Right);
79-
PushCheck(OpCodes.Blt_S, 1.0, 0.0);
79+
PushCheck(OpCodes.Blt, 1.0, 0.0);
8080
return;
8181

8282
case NodeTypes.GreaterThanOrEqual:
8383
Push(bn.Left);
8484
Push(bn.Right);
85-
PushCheck(OpCodes.Bge_S, 1.0, 0.0);
85+
PushCheck(OpCodes.Bge, 1.0, 0.0);
8686
return;
8787

8888
case NodeTypes.LessThanOrEqual:
8989
Push(bn.Left);
9090
Push(bn.Right);
91-
PushCheck(OpCodes.Ble_S, 1.0, 0.0);
91+
PushCheck(OpCodes.Ble, 1.0, 0.0);
9292
return;
9393

9494
case NodeTypes.Equals:
@@ -97,7 +97,7 @@ public override void Push(Node node)
9797
Push(Builder.RelativeTolerance);
9898
Push(Builder.AbsoluteTolerance);
9999
Generator.Emit(OpCodes.Call, _equals);
100-
PushCheck(OpCodes.Brtrue_S, 1.0, 0.0);
100+
PushCheck(OpCodes.Brtrue, 1.0, 0.0);
101101
return;
102102

103103
case NodeTypes.NotEquals:
@@ -106,19 +106,19 @@ public override void Push(Node node)
106106
Push(Builder.RelativeTolerance);
107107
Push(Builder.AbsoluteTolerance);
108108
Generator.Emit(OpCodes.Call, _equals);
109-
PushCheck(OpCodes.Brfalse_S, 1.0, 0.0);
109+
PushCheck(OpCodes.Brfalse, 1.0, 0.0);
110110
return;
111111

112112
case NodeTypes.And:
113113
lblBypass = Generator.DefineLabel();
114114
lblEnd = Generator.DefineLabel();
115115

116116
Push(bn.Left); Push(0.5);
117-
Generator.Emit(OpCodes.Ble_S, lblBypass);
117+
Generator.Emit(OpCodes.Ble, lblBypass);
118118
Push(bn.Right); Push(0.5);
119-
Generator.Emit(OpCodes.Ble_S, lblBypass);
119+
Generator.Emit(OpCodes.Ble, lblBypass);
120120
Generator.Emit(OpCodes.Ldc_R8, 1.0);
121-
Generator.Emit(OpCodes.Br_S, lblEnd);
121+
Generator.Emit(OpCodes.Br, lblEnd);
122122
Generator.MarkLabel(lblBypass);
123123
Generator.Emit(OpCodes.Ldc_R8, 0.0);
124124
Generator.MarkLabel(lblEnd);
@@ -129,11 +129,11 @@ public override void Push(Node node)
129129
lblEnd = Generator.DefineLabel();
130130

131131
Push(bn.Left); Push(0.5);
132-
Generator.Emit(OpCodes.Bgt_S, lblBypass);
132+
Generator.Emit(OpCodes.Bgt, lblBypass);
133133
Push(bn.Right); Push(0.5);
134-
Generator.Emit(OpCodes.Bgt_S, lblBypass);
134+
Generator.Emit(OpCodes.Bgt, lblBypass);
135135
Generator.Emit(OpCodes.Ldc_R8, 0.0);
136-
Generator.Emit(OpCodes.Br_S, lblEnd);
136+
Generator.Emit(OpCodes.Br, lblEnd);
137137
Generator.MarkLabel(lblBypass);
138138
Generator.Emit(OpCodes.Ldc_R8, 1.0);
139139
Generator.MarkLabel(lblEnd);
@@ -166,7 +166,7 @@ public override void Push(Node node)
166166
case NodeTypes.Minus: Generator.Emit(OpCodes.Neg); return;
167167
case NodeTypes.Not:
168168
Push(0.5);
169-
PushCheck(OpCodes.Ble_S, 1.0, 0.0);
169+
PushCheck(OpCodes.Ble, 1.0, 0.0);
170170
return;
171171
}
172172
break;
@@ -191,9 +191,9 @@ public override void Push(Node node)
191191
lblBypass = Generator.DefineLabel();
192192
lblEnd = Generator.DefineLabel();
193193
Push(tn.Condition); Push(0.5);
194-
Generator.Emit(OpCodes.Ble_S, lblBypass);
194+
Generator.Emit(OpCodes.Ble, lblBypass);
195195
Push(tn.IfTrue);
196-
Generator.Emit(OpCodes.Br_S, lblEnd);
196+
Generator.Emit(OpCodes.Br, lblEnd);
197197
Generator.MarkLabel(lblBypass);
198198
Push(tn.IfFalse);
199199
Generator.MarkLabel(lblEnd);

SpiceSharpBehavioral/SpiceSharpBehavioral.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFrameworks>netstandard1.5;netstandard2.0;net45;netcoreapp2.1</TargetFrameworks>
5-
<Version>3.0.7</Version>
5+
<Version>3.0.8</Version>
66
<Authors>Sven Boulanger</Authors>
77
<Title>Spice#.Behavioral</Title>
88
<Description>Spice#.Behavioral is a library that allows using behavioral components in the circuit simulator Spice#.</Description>
@@ -11,12 +11,12 @@
1111
<RepositoryUrl>https://github.com/SpiceSharp/SpiceSharpBehavioral</RepositoryUrl>
1212
<PackageTags>circuit electronics netlist parser spice simulator simulation ode solver design behavioral modeling</PackageTags>
1313
<PackageIconUrl></PackageIconUrl>
14-
<AssemblyVersion>3.0.7.0</AssemblyVersion>
14+
<AssemblyVersion>3.0.8.0</AssemblyVersion>
1515
<PackageReleaseNotes>Refer to the GitHub release for release notes.</PackageReleaseNotes>
1616
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
1717
<Company />
1818
<NeutralLanguage>en</NeutralLanguage>
19-
<FileVersion>3.0.7.0</FileVersion>
19+
<FileVersion>3.0.8.0</FileVersion>
2020
<DebugType>full</DebugType>
2121
<DebugSymbols>true</DebugSymbols>
2222
<PackageLicenseExpression>MIT</PackageLicenseExpression>

SpiceSharpBehavioralTest/Components/BehavioralResistorTests.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,23 @@ namespace SpiceSharpBehavioralTest.Components
88
[TestFixture]
99
public class BehavioralResistorTests
1010
{
11+
[Test]
12+
public void When_ComplexResitor_Expect_Reference()
13+
{
14+
var ckt = new Circuit(
15+
new VoltageSource("V1", "2", "0", 0.5),
16+
new VoltageSource("V2", "1", "0", 10),
17+
new BehavioralResistor("RSwitch", "1", "0", "v(2, 0) >= 1 ? 10 : (v(2, 0) <= 0 ? 1000000 : (exp(8.05904782547916 + 3 * -11.5129254649702 * (v(2, 0)-0.5)/(2*1) - 2 * -11.5129254649702 * pow(v(2, 0)-0.5, 3)/(pow(1,3)))))"));
18+
var op = new OP("Voltage switch simulation");
19+
var refExport = new RealCurrentExport(op, "V2");
20+
op.ExportSimulationData += (sender, args) =>
21+
{
22+
Assert.AreEqual(-0.00316228, refExport.Value, 1e-8);
23+
};
24+
25+
op.Run(ckt);
26+
}
27+
1128
[Test]
1229
public void When_SimpleResistor_Expect_Reference()
1330
{

0 commit comments

Comments
 (0)