首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
The CADNA library enables one to estimate round-off error propagation using a probabilistic approach. With CADNA the numerical quality of any simulation program can be controlled. Furthermore by detecting all the instabilities which may occur at run time, a numerical debugging of the user code can be performed. CADNA provides new numerical types on which round-off errors can be estimated. Slight modifications are required to control a code with CADNA, mainly changes in variable declarations, input and output. This paper describes the features of the CADNA library and shows how to interpret the information it provides concerning round-off error propagation in a code.

Program summary

Program title:CADNACatalogue identifier:AEAT_v1_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEAT_v1_0.htmlProgram obtainable from:CPC Program Library, Queen's University, Belfast, N. IrelandLicensing provisions:Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.:53 420No. of bytes in distributed program, including test data, etc.:566 495Distribution format:tar.gzProgramming language:FortranComputer:PC running LINUX with an i686 or an ia64 processor, UNIX workstations including SUN, IBMOperating system:LINUX, UNIXClassification:4.14, 6.5, 20Nature of problem:A simulation program which uses floating-point arithmetic generates round-off errors, due to the rounding performed at each assignment and at each arithmetic operation. Round-off error propagation may invalidate the result of a program. The CADNA library enables one to estimate round-off error propagation in any simulation program and to detect all numerical instabilities that may occur at run time.Solution method:The CADNA library [1] implements Discrete Stochastic Arithmetic [2-4] which is based on a probabilistic model of round-off errors. The program is run several times with a random rounding mode generating different results each time. From this set of results, CADNA estimates the number of exact significant digits in the result that would have been computed with standard floating-point arithmetic.Restrictions:CADNA requires a Fortran 90 (or newer) compiler. In the program to be linked with the CADNA library, round-off errors on complex variables cannot be estimated. Furthermore array functions such as product or sum must not be used. Only the arithmetic operators and the abs, min, max and sqrt functions can be used for arrays.Running time:The version of a code which uses CADNA runs at least three times slower than its floating-point version. This cost depends on the computer architecture and can be higher if the detection of numerical instabilities is enabled. In this case, the cost may be related to the number of instabilities detected.References:
[1]
The CADNA library, URL address: http://www.lip6.fr/cadna.
[2]
J.-M. Chesneaux, L'arithmétique Stochastique et le Logiciel CADNA, Habilitation á diriger des recherches, Université Pierre et Marie Curie, Paris, 1995.
[3]
J. Vignes, A stochastic arithmetic for reliable scientific computation, Math. Comput. Simulation 35 (1993) 233-261.
[4]
J. Vignes, Discrete stochastic arithmetic for validating results of numerical software, Numer. Algorithms 37 (2004) 377-390.
  相似文献   

2.
The CADNA library enables one to estimate, using a probabilistic approach, round-off error propagation in any simulation program. CADNA provides new numerical types, the so-called stochastic types, on which round-off errors can be estimated. Furthermore CADNA contains the definition of arithmetic and relational operators which are overloaded for stochastic variables and the definition of mathematical functions which can be used with stochastic arguments. On 64-bit processors, depending on the rounding mode chosen, the mathematical library associated with the GNU Fortran compiler may provide incorrect results or generate severe bugs. Therefore the CADNA library has been improved to enable the numerical validation of programs on 64-bit processors.

New version program summary

Program title: CADNACatalogue identifier: AEAT_v1_1Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEAT_v1_1.htmlProgram obtainable from: CPC Program Library, Queen's University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 28 488No. of bytes in distributed program, including test data, etc.: 463 778Distribution format: tar.gzProgramming language: FortranNOTE: A C++ version of this program is available in the Library as AEGQ_v1_0Computer: PC running LINUX with an i686 or an ia64 processor, UNIX workstations including SUN, IBMOperating system: LINUX, UNIXClassification: 6.5Catalogue identifier of previous version: AEAT_v1_0Journal reference of previous version: Comput. Phys. Commun. 178 (2008) 933Does the new version supersede the previous version?: YesNature of problem: A simulation program which uses floating-point arithmetic generates round-off errors, due to the rounding performed at each assignment and at each arithmetic operation. Round-off error propagation may invalidate the result of a program. The CADNA library enables one to estimate round-off error propagation in any simulation program and to detect all numerical instabilities that may occur at run time.Solution method: The CADNA library [1-3] implements Discrete Stochastic Arithmetic [4,5] which is based on a probabilistic model of round-off errors. The program is run several times with a random rounding mode generating different results each time. From this set of results, CADNA estimates the number of exact significant digits in the result that would have been computed with standard floating-point arithmetic.Reasons for new version: On 64-bit processors, the mathematical library associated with the GNU Fortran compiler may provide incorrect results or generate severe bugs with rounding towards −∞ and +∞, which the random rounding mode is based on. Therefore a particular definition of mathematical functions for stochastic arguments has been included in the CADNA library to enable its use with the GNU Fortran compiler on 64-bit processors.Summary of revisions: If CADNA is used on a 64-bit processor with the GNU Fortran compiler, mathematical functions are computed with rounding to the nearest, otherwise they are computed with the random rounding mode. It must be pointed out that the knowledge of the accuracy of the stochastic argument of a mathematical function is never lost.Restrictions: CADNA requires a Fortran 90 (or newer) compiler. In the program to be linked with the CADNA library, round-off errors on complex variables cannot be estimated. Furthermore array functions such as product or sum must not be used. Only the arithmetic operators and the abs, min, max and sqrt functions can be used for arrays.Additional comments: In the library archive, users are advised to read the INSTALL file first. The doc directory contains a user guide named ug.cadna.pdf which shows how to control the numerical accuracy of a program using CADNA, provides installation instructions and describes test runs. The source code, which is located in the src directory, consists of one assembly language file (cadna_rounding.s) and eighteen Fortran language files. cadna_rounding.s is a symbolic link to the assembly file corresponding to the processor and the Fortran compiler used. This assembly file contains routines which are frequently called in the CADNA Fortran files to change the rounding mode. The Fortran language files contain the definition of the stochastic types on which the control of accuracy can be performed, CADNA specific functions (for instance to enable or disable the detection of numerical instabilities), the definition of arithmetic and relational operators which are overloaded for stochastic variables and the definition of mathematical functions which can be used with stochastic arguments. The examples directory contains seven test runs which illustrate the use of the CADNA library and the benefits of Discrete Stochastic Arithmetic.Running time: The version of a code which uses CADNA runs at least three times slower than its floating-point version. This cost depends on the computer architecture and can be higher if the detection of numerical instabilities is enabled. In this case, the cost may be related to the number of instabilities detected.References:
[1]
The CADNA library, URL address: http://www.lip6.fr/cadna.
[2]
F. Jézéquel, J.-M. Chesneaux, CADNA: a library for estimating round-off error propagation, Comput. Phys. Commun. 178 (12) (2008) 933-955.
[3]
N.S. Scott, F. Jézéquel, C. Denis, J.-M. Chesneaux, Numerical ‘health check’ for scientific codes: the CADNA approach, Comput. Phys. Commun. 176 (8) (2007) 507-521.
[4]
J. Vignes, A stochastic arithmetic for reliable scientific computation, Math. Comput. Simul. 35 (1993) 233-261.
[5]
J. Vignes, Discrete stochastic arithmetic for validating results of numerical software, Numer. Algorithms 37 (2004) 377-390.
  相似文献   

3.
The CADNA library enables one to estimate round-off error propagation using a probabilistic approach. The CADNA_C version enables this estimation in C or C++ programs, while the previous version had been developed for Fortran programs. The CADNA_C version has the same features as the previous one: with CADNA the numerical quality of any simulation program can be controlled. Furthermore by detecting all the instabilities which may occur at run time, a numerical debugging of the user code can be performed. CADNA provides new numerical types on which round-off errors can be estimated. Slight modifications are required to control a code with CADNA, mainly changes in variable declarations, input and output.

New version program summary

Program title: CADNA_CCatalogue identifier: AEGQ_v1_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEGQ_v1_0.htmlProgram obtainable from: CPC Program Library, Queen's University, Belfast, N. IrelandLicensing provisions: Standard CPC licence, http://cpc.cs.qub.ac.uk/licence/licence.htmlNo. of lines in distributed program, including test data, etc.: 60 075No. of bytes in distributed program, including test data, etc.: 710 781Distribution format: tar.gzProgramming language: C++Computer: PC running LINUX with an i686 or an ia64 processor, UNIX workstations including SUN, IBMOperating system: LINUX, UNIXClassification: 6.5Catalogue identifier of previous version: AEAT_v1_0Journal reference of previous version: Comput. Phys. Comm. 178 (2008) 933Does the new version supersede the previous version?: NoNature of problem: A simulation program which uses floating-point arithmetic generates round-off errors, due to the rounding performed at each assignment and at each arithmetic operation. Round-off error propagation may invalidate the result of a program. The CADNA library enables one to estimate round-off error propagation in any simulation program and to detect all numerical instabilities that may occur at run time.Solution method: The CADNA library [1-3] implements Discrete Stochastic Arithmetic [4,5] which is based on a probabilistic model of round-off errors. The program is run several times with a random rounding mode generating different results each time. From this set of results, CADNA estimates the number of exact significant digits in the result that would have been computed with standard floating-point arithmetic.Reasons for new version: The previous version (AEAT_v1_0) enables the estimation of round-off error propagation in Fortran programs [2]. The new version has been developed to enable this estimation in C or C++ programs.Summary of revisions: The CADNA_C source code consists of one assembly language file (cadna_rounding.s) and twenty-three C++ language files (including three header files). cadna_rounding.s is a symbolic link to the assembly file corresponding to the processor and the C++ compiler used. This assembly file contains routines which are frequently called in the CADNA_C C++ files to change the rounding mode. The C++ language files contain the definition of the stochastic types on which the control of accuracy can be performed, CADNA_C specific functions (for instance to enable or disable the detection of numerical instabilities), the definition of arithmetic and relational operators which are overloaded for stochastic variables and the definition of mathematical functions which can be used with stochastic arguments. As a remark, on 64-bit processors, the mathematical library associated with the GNU C++ compiler may provide incorrect results or generate severe bugs with rounding towards −∞ and +∞, which the random rounding mode is based on. Therefore, if CADNA_C is used on a 64-bit processor with the GNU C++ compiler, mathematical functions are computed with rounding to the nearest, otherwise they are computed with the random rounding mode. It must be pointed out that the knowledge of the accuracy of the argument of a mathematical function is never lost.Additional comments: In the library archive, users are advised to read the INSTALL file first. The doc directory contains a user guide named ug.cadna.pdf and a reference guide named, ref_cadna.pdf. The user guide shows how to control the numerical accuracy of a program using CADNA, provides installation instructions and describes test runs.The reference guide briefly describes each function of the library. The source code (which consists of C++ and assembly files) is located in the src directory. The examples directory contains seven test runs which illustrate the use of the CADNA library and the benefits of Discrete Stochastic Arithmetic.Running time: The version of a code which uses CADNA runs at least three times slower than its floating-point version. This cost depends on the computer architecture and can be higher if the detection of numerical instabilities is enabled. In this case, the cost may be related to the number of instabilities detected.References:
[1]
The CADNA library, URL address: http://www.lip6.fr/cadna.
[2]
F. Jézéquel, J.-M. Chesneaux, CADNA: a library for estimating round-off error propagation, Comput. Phys. Comm. 178 (12) (2008) 933-955.
[3]
N.S. Scott, F. Jézéquel, C. Denis, J.-M. Chesneaux, Numerical ‘health check’ for scientific codes: the CADNA approach, Comput. Phys. Comm. 176 (8) (2007) 507-521.
[4]
J. Vignes, A stochastic arithmetic for reliable scientific computation, Math. Comput. Simulation 35 (1993) 233-261.
[5]
J. Vignes, Discrete stochastic arithmetic for validating results of numerical software, Numer. Algorithms 37 (2004) 377-390.
  相似文献   

4.
A second-order differential equation whose solution is periodic with two frequencies has important applications in many scientific fields. Nevertheless, it may exhibit ‘periodic stiffness’ for most of the available linear multi-step methods. The phenomena are similar to the popular Stömer-Cowell class of linear multi-step methods for one-frequency problems. According to the stability theory laid down by Lambert, ‘periodic stiffness’ appears in a two-frequency problem because the production of the step-length and the bigger angular frequency lies outside the interval of periodicity. On the other hand, for a two-frequency problem, even with a small step-length, the error in the numerical solution afforded by a P-stable trigonometrically-fitted method with one frequency would be too large for practical applications. In this paper we demonstrate that the interval of periodicity and the local truncation error of a linear multi-step method for a two-frequency problem can be greatly improved by a new trigonometric-fitting technique. A trigonometrically-fitted Numerov method with two frequencies is proposed and has been verified to be P-stable with vanishing local truncation error for a two-frequency test problem. Numerical results demonstrated that the proposed trigonometrically-fitted Numerov method with two frequencies has significant advantages over other types of Numerov methods for solving the ‘periodic stiffness’ problem.  相似文献   

5.
In Part I (Ikhile, 2008) [4], it was established that the root and Bell’s disk/point iteration methods with or without correction term are of the same asymptotic error propagation characteristics in the simultaneous determination of the zeros of a polynomial. This concluding part of the investigation is a study in round-offs, its propagation and its effects on convergence employing interval arithmetic means. The purpose is to consequently draw attention on the effects of round-off errors introduced from the point arithmetic part, on the rate of convergence of the generalized root and Bell’s simultaneous interval iteration algorithms and its enhanced modifications introduced in Part I for the numerical inclusion of all the zeros of a polynomial simultaneously. The motivation for studying the effects of round-off error propagation comes from the fact that the readily available computing devices at the moment are limited in precision, more so that accuracy expected from some programming or computing environments or from these numerical methods are or can be machine dependent. In fact, a part of the finding is that round-off propagation effects beyond a certain controllable order induces overwhelmingly delayed or even a severely retarded convergence speed which manifest glaringly as poor accuracy of these interval iteration methods in the computation of the zeros of a polynomial simultaneously. However, in this present consideration and even in the presence of overwhelming influence of round-offs, we give conditions under which convergence is still possible and derive the error/round-off relations along with the order/R-order of convergence of these methods with the results extended to similar interval iteration methods for computing the zeros of a polynomial simultaneously, especially to Bell’s interval methods for refinement of zeros that form a cluster. Our findings are instructive and quite revealing and supported by evidence from numerical experiments. The analysis is preferred in circular interval arithmetic.  相似文献   

6.
We indicate a Double Exponential Formula based numerical integration method for the evaluation of the Ambarzumian-Chandrasekhar H function and the X function of neutron transport for the single speed and isotropic case. This method is significantly more economical than our earlier scheme, which was based on IMT quadrature. For c<5, the present method converges faster than our earlier IMT scheme. This will be adequate for all radiative transport and transport theory applications. These findings are supported by appropriate error analysis. Unlike the IMT method, the DE quadrature nodes are generated by a simple algebraic expression which is a great advantage.  相似文献   

7.
It is widely believed that, in molecular dynamics (MD) simulations, round-off errors can cause numerical irreversibility since, in the standard MD, floating-point real number arithmetic is employed and round-off errors cannot be avoided. To investigate the characteristic of this numerical irreversibility, the ‘bit-reversible algorithm’, which is completely time-reversible and is free from any round-off error, is made use of as a test bed. Through this study, it is clearly demonstrated that, other than the extent of the stability of the system, the appearance of irreversibility is related to the ‘quantity’ of the controlled noise. By means of the bit-reversible simulation added to the controlled noise of an appropriate ‘quantity’, the characteristic of the numerical irreversibility in the standard MD is revealed.  相似文献   

8.
In this paper we present a new multi-derivative or Obrechkoff one-step method for the numerical solution to an one-dimensional Schrödinger equation. By using trigonometrically-fitting method (TFM), we overcome the traditional Obrechkoff one-step method (or called as the non-TFM) for its poor-accuracy in the resonant state. In order to demonstrate the excellent performance for the resonant state, we consider only the simplest TFM, of which the local truncation error (LTE) is of O(h7), a little higher than the one of the traditional Numerov method of O(h6), and only the first- and second-order derivatives of the potential function are needed. In the new method, in order to solve two unknowns, wave function and its first-order derivative, we use a pair of two symmetrically linear-independent one-step difference equations. By applying it to the well-known Woods-Saxon's potential problem, we find that the TFM can surpass the non-TFM by five orders for the highest resonant state, and surpass Numerov method by eight orders. On the other hand, because of the small error constant, the accuracy improvement to the ground state is also remarkable, and the numerical result obtained by TFM can be four to five orders higher than the one by Numerov method.  相似文献   

9.
We formally prove correct a C program that implements a numerical scheme for the resolution of the one-dimensional acoustic wave equation. Such an implementation introduces errors at several levels: the numerical scheme introduces method errors, and floating-point computations lead to round-off errors. We annotate this C program to specify both method error and round-off error. We use Frama-C to generate theorems that guarantee the soundness of the code. We discharge these theorems using SMT solvers, Gappa, and Coq. This involves a large Coq development to prove the adequacy of the C program to the numerical scheme and to bound errors. To our knowledge, this is the first time such a numerical analysis program is fully machine-checked.  相似文献   

10.
Stabilized Runge-Kutta methods (they have also been called Chebyshev-Runge-Kutta methods) are explicit methods with extended stability domains, usually along the negative real axis. They are easy to use (they do not require algebra routines) and are especially suited for MOL discretizations of two- and three-dimensional parabolic partial differential equations. Previous codes based on stabilized Runge-Kutta algorithms were tested with mildly stiff problems. In this paper we show that they have some difficulties to solve efficiently problems where the eigenvalues are very large in absolute value (over 105). We also develop a new procedure to build this kind of algorithms and we derive second-order methods with up to 320 stages and good stability properties. These methods are efficient numerical integrators of very large stiff ordinary differential equations. Numerical experiments support the effectiveness of the new algorithms compared to well-known methods as RKC, ROCK2, DUMKA3 and ROCK4.  相似文献   

11.
We present an advanced and comprehensive semiconductor optical amplifier model to analyze the propagation and amplification of 10 to, in principle, 1280 Gb/s ultra-short optical pulse sequences. Through appropriate transformation, the partial differential propagation-rate equation problem is numerically solved in a two-dimensional grid of fine resolution. The corresponding simulator, entirely programmed in the graphical language LabVIEW, is compared to an identical simulator implemented in the popular high-level text-based language Matlab. Special care has been taken to implement the same set of algorithms using equivalent codes for each language, such that a fair and objective one-to-one comparison can be carried out. In terms of computational time the LabVIEW simulator shows a tenfold outperformance, compared to its text-based identical counterpart implemented in Matlab, when typical bit sequences at 40 Gb/s with a length of 8 to 1024 bits are tested. The performance results presented here apply to a broader set of device modeling scenarios.  相似文献   

12.
Finite precision computations may affect the stability of algorithms and the accuracy of computed solutions. In this paper we first obtain a relation for computing the number of common significant digits between the exact solution and a computed solution of a one-dimensional initial-value problem obtained by using a single-step or multi-step method. In fact, by using the approximate solutions obtained with stepsizes h and h /2, the number of common significant digits between approximate solution with stepsize h and exact solution is estimated. Then by using the stochastic arithmetic, the CESTAC method, and the CADNA library we propose an algorithm to control the round-off error effect on the computed solution. This method can easily apply to a system of n one-dimensional initial-value problems. Finally some numerical examples are given to show the efficiency of the method.  相似文献   

13.
In this paper, how to overcome the barrier for a finite difference method to obtain the numerical solutions of a one-dimensional Schrödinger equation defined on the infinite integration interval accurate than the computer precision is discussed. Five numerical examples of solutions with the error less than 10−50 and 10−30 for the bound and resonant state, respectively, obtained by the Obrechkoff one-step method implemented in the multi precision mode, which include the harmonic oscillator, the Pöschl-Teller potential, the Morse potential and the Woods-Saxon potential, demonstrate that the finite difference method can yield the eigenvalues of a complex potential with an arbitrarily desired precision within a reasonable efficiency.  相似文献   

14.
The code numer is used for numerical integrations of Coulomb radial wave functions using the Numerov method. The input specifies a function and its derivative to start integrations, an integration range and an accuracy parameter ac such that the accumulated error is no larger than ac. Alternative input is initial function, integration step, and function after first step. For positive energies, options exist to use either the atomic-physics variables (?,r) or the nuclear-physics variables (η,ρ).  相似文献   

15.
We present a method for solving a class of initial valued, coupled, non-linear differential equations with ‘moving singularities’ subject to some subsidiary conditions. We show that these types of singularities can be adequately treated by establishing certain ‘moving’ jump conditions across them. We show how a first integral of the differential equations, if available, can also be used for checking the accuracy of the numerical solution.  相似文献   

16.
In this paper we present a delicately designed numerical experiment to explore the relationship between the accuracy of the first-order derivative (FOD) formula and the one of the main structure in an Obrechkoff method. We choose three two-step P-stable Obrechkoff methods as the main structure, which are available from the previous published literature, their local truncation error (LTE(h)) ranging from to , and six FOD formulas, of which the former five ones have the similar structures and the sixth is the ‘exact’ value of the FOD, their LTE(h) arranged from to (we will use to represent the order of a LTE(h)), as the main ingredients for our numerical experiment. We survey the numerical results by integrating the Duffing equation without damping and compare them with the ‘exact’ solution, and find out how its numerical accuracy is affected by a FOD formula. The experiment shows that a high accurate FOD formula can greatly improve the numerical accuracy of an Obrechkoff method for a given main structure, and the error in the numerical solution decreases with the order of the LTE(h) of a FOD formula, only when the order of LTE(h) of the FOD formula is equal to or higher than the one of the main structure, the accuracy of the Obrechkoff method is no longer affected by the approximation of the FOD formula.  相似文献   

17.
Recursive methods for digital frequency synthesis (DFS) exhibit numerical instability due to the round-off error propagation and accumulation in the finite precision digital computations. Because of this, despite their simplicity and other desirable features, recursive DFS methods are generally avoided in practice. In this paper we present a method that solves this numerical instability problem for the coupled form oscillator (CFO) method in a simple manner by randomizing the selection of the rotation phase-step. The internal process uncertainty, induced by the truncation of intermediate computation results, is used for randomization. Interestingly this results in the self-stabilizing property of the proposed method.  相似文献   

18.
Smoothed particle hydrodynamics: Applications to heat conduction   总被引:2,自引:0,他引:2  
In this paper, we modify the numerical steps involved in a smoothed particle hydrodynamics (SPH) simulation. Specifically, the second order partial differential equation (PDE) is decomposed into two first order PDEs. Using the ghost particle method, consistent estimation of near-boundary corrections for system variables is also accomplished. Here, we focus on SPH equations for heat conduction to verify our numerical scheme. Each particle carries a physical entity (here, this entity is temperature) and transfers it to neighboring particles, thus exhibiting the mesh-less nature of the SPH framework, which is potentially applicable to complex geometries and nanoscale heat transfer. We demonstrate here only 1D and 2D simulations because 3D codes are as simple to generate as 1D codes in the SPH framework. Our methodology can be extended to systems where the governing equations are described by PDEs.  相似文献   

19.
In this paper, extended Runge-Kutta-Nyström-type methods for the numerical integration of perturbed oscillators with low frequencies are presented, which inherit the framework of RKN methods and make full use of the special feature of the true flows for both the internal stages and the updates. Following the approach of J. Butcher, E. Hairer and G. Wanner, we develop a new kind of tree set to derive order conditions for the extended Runge-Kutta-Nyström-type methods. The numerical stability and phase properties of the new methods are analyzed. Numerical experiments are accompanied to show the applicability and efficiency of our new methods in comparison with some well-known high quality methods proposed in the scientific literature.  相似文献   

20.
We consider the out-of-equilibrium time evolution of a nonconserved order parameter using the Ginzburg-Landau equation including memory effects. Memory effects are expected to play important role on the nonequilibrium dynamics for fast phase transitions, in which the time scales of the rapid phase conversion are comparable to the microscopic time scales. We consider two numerical approximation schemes based on Fourier collocation and finite difference methods and perform a numerical analysis with respect to the existence, stability and convergence of the schemes. We present results of direct numerical simulations for one and three spatial dimensions, and examine numerically the stability and convergence of both approximation schemes.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号