📄 vbas.java
字号:
}
public static void VI0mul(int N, int[] X, int ix, int[] Y, int iy, int[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
int S = Y[jy];
if ( Z[iz] == 0 ) S = 0;
X[jx] = S;
jx += ix;
jy += iy;
jz += iz;
}
}
public static void VR0mul(int N, float[] X, int ix, float[] Y, int iy, float[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
float S = Y[jy];
if ( Z[iz] == 0 ) S = 0;
X[jx] = S;
jx += ix;
jy += iy;
jz += iz;
}
}
public static void VD0mul(int N, double[] X, int ix, double[] Y, int iy, double[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
double S = Y[jy];
if ( Z[iz] == 0 ) S = 0;
X[jx] = S;
jx += ix;
jy += iy;
jz += iz;
}
}
public static void VIdiv(int N, int[] X, int ix, int[] Y, int iy, int[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
int II = 0;
if ( Z[iz] != 0 ) II = Y[jy] / Z[jz];
X[jx] = II;
jx += ix;
jy += iy;
jz += iz;
}
}
public static void VRdiv(int N, float[] X, int ix, float[] Y, int iy, float[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
float S = 0;
if ( Z[iz] != 0 ) S = Y[jy] / Z[jz];
X[jx] = S;
jx += ix;
jy += iy;
jz += iz;
}
}
public static void VDdiv(int N, double[] X, int ix, double[] Y, int iy, double[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
double S = 0;
if ( Z[iz] != 0 ) S = Y[jy] / Z[jz];
X[jx] = S;
jx += ix;
jy += iy;
jz += iz;
}
}
public static void VRdiv0(int N, float[] X, int ix, float[] Y, int iy, float[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
float S = 0;
if ( Z[iz] != 0 ) S = Y[jy] / Z[jz];
if ( Math.abs(S) < 1E-35 ) S = 0;
X[jx] = S;
jx += ix;
jy += iy;
jz += iz;
}
}
public static void VDdiv0(int N, double[] X, int ix, double[] Y, int iy, double[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
double S = 0.0;
if ( Z[iz] != 0.0 ) S = Y[jy] / Z[jz];
if ( Math.abs(S) < 1E-35 ) S = 0.0;
X[jx] = S;
jx += ix;
jy += iy;
jz += iz;
}
}
public static void VImod(int N, int[] X, int ix, int[] Y, int iy, int[] Z, int iz) {
int jx = 0;
int jy = 0;
int jz = 0;
for (int i = 0; i < N; i++) {
X[jx] = Y[jy] - (Y[jy]/Z[jz])*Z[jz];
jx += ix;
jy += iy;
jz += iz;
}
}
// -----------------------------------------------------------------------
// Type 2: V[x][oper](N,X,ix,Y,iy)
//
// [x] = I int
// = R float
// = D double
// = c type cast
//
// [oper]= "copy" copy
// = "chng" change
// = "sqrt" square root
// = "IfromR" cast float -> int
// = "IfromD" cast double -> int
// = "RfromI" cast int -> float
// = "RfromD" cast double -> float
// = "DfromI" cast int -> double
// = "DfromR" cast float -> double
//
// Type : X := "oper" Y (with step widths ix, iy)
//
// -----------------------------------------------------------------------
public static void VIcopy(int N, int[] X, int ix, int[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = Y[jy];
jx += ix;
jy += iy;
}
}
public static void VDcopy(int N, double[] X, int ix, double[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = Y[jy];
jx += ix;
jy += iy;
}
}
public static void VIchng(int N, int[] X, int ix, int[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
int XX = X[jx];
X[jx] = Y[jy];
Y[jy] = XX;
jx += ix;
jy += iy;
}
}
public static void VDchng(int N, double[] X, int ix, double[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
double XX = X[jx];
X[jx] = Y[jy];
Y[jy] = XX;
jx += ix;
jy += iy;
}
}
public static void VcRfromD(int N, float[] X, int ix, double[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = (float) Y[jy];
jx += ix;
jy += iy;
}
}
public static void VcIfromD(int N, int[] X, int ix, double[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = (int) Y[jy];
jx += ix;
jy += iy;
}
}
public static void VcDfromR(int N, double[] X, int ix, float[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = Y[jy];
jx += ix;
jy += iy;
}
}
public static void VcIfromR(int N, int[] X, int ix, float[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = (int) Y[jy];
jx += ix;
jy += iy;
}
}
public static void VcDfromI(int N, double[] X, int ix, int[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = Y[jy];
jx += ix;
jy += iy;
}
}
public static void VcRfromI(int N, float[] X, int ix, int[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = Y[jy];
jx += ix;
jy += iy;
}
}
public static void VRsqrt(int N, float[] X, int ix, float[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = (float) Math.sqrt( Y[jy] );
jx += ix;
jy += iy;
}
}
public static void VDsqrt(int N, double[] X, int ix, double[] Y, int iy) {
int jx = 0;
int jy = 0;
for (int i = 0; i < N; i++) {
X[jx] = Math.sqrt( Y[jy] );
jx += ix;
jy += iy;
}
}
// -----------------------------------------------------------------------
// Type 3: V[x]aXpY(N,X,Y,Alfa,Z)
//
// [x] = S float
// = D double
//
// Type : X := Y + Alfa * Z (for all components, with step widths 1)
// -----------------------------------------------------------------------
public static void VSaXpY(int N, float[] X, float[] Y, float Alfa, float[] Z) {
for (int i = 0; i < N; i++)
X[i] = Y[i] + Alfa*Z[i];
}
public static void VDaXpY(int N, double[] X, double[] Y, float Alfa, double[] Z) {
for (int i = 0; i < N; i++)
X[i] = Y[i] + Alfa*Z[i];
}
// -----------------------------------------------------------------------
// Type 4: [x]Scapr(N,X,Y)
//
// [x] = I int
// = R float
// = D double
//
// Type : [x]Scapr := scalar product( X , Y )
//
// -----------------------------------------------------------------------
public static int IScapr(int N, int[] X, int[] Y) {
int S = 0;
for (int i = 0; i < N; i++)
S = S + X[i]*Y[i];
return S;
}
public static float RScapr(int N, float[] X, float[] Y) {
float S = 0;
for (int i = 0; i < N; i++)
S = S + X[i]*Y[i];
return S;
}
public static double DScapr(int N, double[] X, double[] Y) {
double S = 0;
for (int i = 0; i < N; i++)
S = S + X[i]*Y[i];
return S;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -