Guido van Rossum, as well as being the creator of the Python language, is the original creator of IDLE. Other contributors prior to Version 0.8 include Mark Hammond, Jeremy Hylton, Tim Peters, and Moshe Zadka. IDLE's recent development was carried out in the SF IDLEfork project. The objective was to develop a version of IDLE which had an execution environment which could be initialized prior to each run of user code. The IDLEfork project was initiated by David Scherer, with some help from Peter Schneider-Kamp and Nicholas Riley. David wrote the first version of the RPC code and designed a fast turn-around environment for VPython. Guido developed the RPC code and Remote Debugger currently integrated in IDLE. Bruce Sherwood contributed considerable time testing and suggesting improvements. Besides David and Guido, the main developers who were active on IDLEfork are Stephen M. Gava, who implemented the configuration GUI, the new configuration system, and the About dialog, and Kurt B. Kaiser, who completed the integration of the RPC and remote debugger, implemented the threaded subprocess, and made a number of usability enhancements. Other contributors include Raymond Hettinger, Tony Lownds (Mac integration), Neal Norwitz (code check and clean-up), Ronald Oussoren (Mac integration), Noam Raphael (Code Context, Call Tips, many other patches), and Chui Tey (RPC integration, debugger integration and persistent breakpoints). Scott David Daniels, Tal Einat, Hernan Foffani, Christos Georgiou, Jim Jewett, Martin v. Lwis, Jason Orendorff, Guilherme Polo, Josh Robb, Nigel Rowe, Bruce Sherwood, Jeff Shute, and Weeble have submitted useful patches. Thanks, guys! For additional details refer to NEWS.txt and Changelog. Please contact the IDLE maintainer (kbk@shore.net) to have yourself included here if you are one of those we missed! Writing an IDLE extension ========================= An IDLE extension can define new key bindings and menu entries for IDLE edit windows. There is a simple mechanism to load extensions when IDLE starts up and to attach them to each edit window. (It is also possible to make other changes to IDLE, but this must be done by editing the IDLE source code.) The list of extensions loaded at startup time is configured by editing the file config-extensions.def. See below for details. An IDLE extension is defined by a class. Methods of the class define actions that are invoked by event bindings or menu entries. Class (or instance) variables define the bindings and menu additions; these are automatically applied by IDLE when the extension is linked to an edit window. An IDLE extension class is instantiated with a single argument, `editwin', an EditorWindow instance. The extension cannot assume much about this argument, but it is guaranteed to have the following instance variables: text a Text instance (a widget) io an IOBinding instance (more about this later) flist the FileList instance (shared by all edit windows) (There are a few more, but they are rarely useful.) The extension class must not directly bind Window Manager (e.g. X) events. Rather, it must define one or more virtual events, e.g. <>, and corresponding methods, e.g. zoom_height_event(). The virtual events will be bound to the corresponding methods, and Window Manager events can then be bound to the virtual events. (This indirection is done so that the key bindings can easily be changed, and so that other sources of virtual events can exist, such as menu entries.) An extension can define menu entries. This is done with a class or instance variable named menudefs; it should be a list of pairs, where each pair is a menu name (lowercase) and a list of menu entries. Each menu entry is either None (to insert a separator entry) or a pair of strings (menu_label, virtual_event). Here, menu_label is the label of the menu entry, and virtual_event is the virtual event to be generated when the entry is selected. An underscore in the menu label is removed; the character following the underscore is displayed underlined, to indicate the shortcut character (for Windows). At the moment, extensions cannot define whole new menus; they must define entries in existing menus. Some menus are not present on some windows; such entry definitions are then ignored, but key bindings are still applied. (This should probably be refined in the future.) Extensions are not required to define menu entries for all the events they implement. (They are also not required to create keybindings, but in that case there must be empty bindings in cofig-extensions.def) Here is a complete example: class ZoomHeight: menudefs = [ ('edit', [ None, # Separator ('_Zoom Height', '<>'), ]) ] def __init__(self, editwin): self.editwin = editwin def zoom_height_event(self, event): "...Do what you want here..." The final piece of the puzzle is the file "config-extensions.def", which is used to configure the loading of extensions and to establish key (or, more generally, event) bindings to the virtual events defined in the extensions. See the comments at the top of config-extensions.def for information. It's currently necessary to manually modify that file to change IDLE's extension loading or extension key bindings. For further information on binding refer to the Tkinter Resources web page at python.org and to the Tk Command "bind" man page. This file, idlelib/help.txt is out-of-date and no longer used by Idle. It is deprecated and will be removed in the future, possibly in 3.6 ---------------------------------------------------------------------- [See the end of this file for ** TIPS ** on using IDLE !!] IDLE is the Python IDE built with the tkinter GUI toolkit. IDLE has the following features: -coded in 100% pure Python, using the tkinter GUI toolkit -cross-platform: works on Windows, Unix, and OS X -multi-window text editor with multiple undo, Python colorizing, smart indent, call tips, and many other features -Python shell window (a.k.a interactive interpreter) -debugger (not complete, but you can set breakpoints, view and step) Menus: IDLE has two window types the Shell window and the Editor window. It is possible to have multiple editor windows simultaneously. IDLE's menus dynamically change based on which window is currently selected. Each menu documented below indicates which window type it is associated with. File Menu (Shell and Editor): New File -- Create a new file editing window Open... -- Open an existing file Open Module... -- Open an existing module (searches sys.path) Recent Files... -- Open a list of recent files Class Browser -- Show classes and methods in current file Path Browser -- Show sys.path directories, modules, classes, and methods --- Save -- Save current window to the associated file (unsaved windows have a * before and after the window title) Save As... -- Save current window to new file, which becomes the associated file Save Copy As... -- Save current window to different file without changing the associated file --- Print Window -- Print the current window --- Close -- Close current window (asks to save if unsaved) Exit -- Close all windows, quit (asks to save if unsaved) Edit Menu (Shell and Editor): Undo -- Undo last change to current window (a maximum of 1000 changes may be undone) Redo -- Redo last undone change to current window --- Cut -- Copy a selection into system-wide clipboard, then delete the selection Copy -- Copy selection into system-wide clipboard Paste -- Insert system-wide clipboard into window Select All -- Select the entire contents of the edit buffer --- Find... -- Open a search dialog box with many options Find Again -- Repeat last search Find Selection -- Search for the string in the selection Find in Files... -- Open a search dialog box for searching files Replace... -- Open a search-and-replace dialog box Go to Line -- Ask for a line number and show that line Expand Word -- Expand the word you have typed to match another word in the same buffer; repeat to get a different expansion Show Calltip -- After an unclosed parenthesis for a function, open a small window with function parameter hints Show Parens -- Highlight the surrounding parenthesis Show Completions -- Open a scroll window allowing selection keywords and attributes. (see '*TIPS*', below) Format Menu (Editor window only): Indent Region -- Shift selected lines right by the indent width (default 4 spaces) Dedent Region -- Shift selected lines left by the indent width (default 4 spaces) Comment Out Region -- Insert ## in front of selected lines Uncomment Region -- Remove leading # or ## from selected lines Tabify Region -- Turns *leading* stretches of spaces into tabs. (Note: We recommend using 4 space blocks to indent Python code.) Untabify Region -- Turn *all* tabs into the corrent number of spaces Toggle tabs -- Open a dialog to switch between indenting with spaces and tabs. New Indent Width... -- Open a dialog to change indent width. The accepted default by the Python community is 4 spaces. Format Paragraph -- Reformat the current blank-line-separated paragraph. All lines in the paragraph will be formatted to less than 80 columns. --- Strip trailing whitespace -- Removed any space characters after the end of the last non-space character Run Menu (Editor window only): Python Shell -- Open or wake up the Python shell window --- Check Module -- Check the syntax of the module currently open in the Editor window. If the module has not been saved IDLE will prompt the user to save the code. Run Module -- Restart the shell to clean the environment, then execute the currently open module. If the module has not been saved IDLE will prompt the user to save the code. Shell Menu (Shell window only): View Last Restart -- Scroll the shell window to the last Shell restart Restart Shell -- Restart the shell to clean the environment Debug Menu (Shell window only): Go to File/Line -- Look around the insert point for a filename and line number, open the file, and show the line. Useful to view the source lines referenced in an exception traceback. Available in the context menu of the Shell window. Debugger (toggle) -- This feature is not complete and considered experimental. Run commands in the shell under the debugger. Stack Viewer -- Show the stack traceback of the last exception Auto-open Stack Viewer (toggle) -- Toggle automatically opening the stack viewer on unhandled exception Options Menu (Shell and Editor): Configure IDLE -- Open a configuration dialog. Fonts, indentation, keybindings, and color themes may be altered. Startup Preferences may be set, and additional Help sources can be specified. On OS X, open the configuration dialog by selecting Preferences in the application menu. --- Code Context (toggle) -- Open a pane at the top of the edit window which shows the block context of the section of code which is scrolling off the top or the window. This is not present in the Shell window only the Editor window. Window Menu (Shell and Editor): Zoom Height -- Toggles the window between normal size (40x80 initial setting) and maximum height. The initial size is in the Configure IDLE dialog under the general tab. --- The rest of this menu lists the names of all open windows; select one to bring it to the foreground (deiconifying it if necessary). Help Menu: About IDLE -- Version, copyright, license, credits --- IDLE Help -- Display this file which is a help file for IDLE detailing the menu options, basic editing and navigation, and other tips. Python Docs -- Access local Python documentation, if installed. Or will start a web browser and open docs.python.org showing the latest Python documentation. --- Additional help sources may be added here with the Configure IDLE dialog under the General tab. Editor context menu (Right-click / Control-click on OS X in Edit window): Cut -- Copy a selection into system-wide clipboard, then delete the selection Copy -- Copy selection into system-wide clipboard Paste -- Insert system-wide clipboard into window Set Breakpoint -- Sets a breakpoint. Breakpoints are only enabled when the debugger is open. Clear Breakpoint -- Clears the breakpoint on that line Shell context menu (Right-click / Control-click on OS X in Shell window): Cut -- Copy a selection into system-wide clipboard, then delete the selection Copy -- Copy selection into system-wide clipboard Paste -- Insert system-wide clipboard into window --- Go to file/line -- Same as in Debug menu ** TIPS ** ========== Additional Help Sources: Windows users can Google on zopeshelf.chm to access Zope help files in the Windows help format. The Additional Help Sources feature of the configuration GUI supports .chm, along with any other filetypes supported by your browser. Supply a Menu Item title, and enter the location in the Help File Path slot of the New Help Source dialog. Use http:// and/or www. to identify external URLs, or download the file and browse for its path on your machine using the Browse button. All users can access the extensive sources of help, including tutorials, available at docs.python.org. Selected URLs can be added or removed from the Help menu at any time using Configure IDLE. Basic editing and navigation: Backspace deletes char to the left; DEL deletes char to the right. Control-backspace deletes word left, Control-DEL deletes word right. Arrow keys and Page Up/Down move around. Control-left/right Arrow moves by words in a strange but useful way. Home/End go to begin/end of line. Control-Home/End go to begin/end of file. Some useful Emacs bindings are inherited from Tcl/Tk: Control-a beginning of line Control-e end of line Control-k kill line (but doesn't put it in clipboard) Control-l center window around the insertion point Standard keybindings (like Control-c to copy and Control-v to paste) may work. Keybindings are selected in the Configure IDLE dialog. Automatic indentation: After a block-opening statement, the next line is indented by 4 spaces (in the Python Shell window by one tab). After certain keywords (break, return etc.) the next line is dedented. In leading indentation, Backspace deletes up to 4 spaces if they are there. Tab inserts spaces (in the Python Shell window one tab), number depends on Indent Width. Currently tabs are restricted to four spaces due to Tcl/Tk limitations. See also the indent/dedent region commands in the edit menu. Completions: Completions are supplied for functions, classes, and attributes of classes, both built-in and user-defined. Completions are also provided for filenames. The AutoCompleteWindow (ACW) will open after a predefined delay (default is two seconds) after a '.' or (in a string) an os.sep is typed. If after one of those characters (plus zero or more other characters) a tab is typed the ACW will open immediately if a possible continuation is found. If there is only one possible completion for the characters entered, a tab will supply that completion without opening the ACW. 'Show Completions' will force open a completions window, by default the Control-space keys will open a completions window. In an empty string, this will contain the files in the current directory. On a blank line, it will contain the built-in and user-defined functions and classes in the current name spaces, plus any modules imported. If some characters have been entered, the ACW will attempt to be more specific. If string of characters is typed, the ACW selection will jump to the entry most closely matching those characters. Entering a tab will cause the longest non-ambiguous match to be entered in the Edit window or Shell. Two tabs in a row will supply the current ACW selection, as will return or a double click. Cursor keys, Page Up/Down, mouse selection, and the scroll wheel all operate on the ACW. "Hidden" attributes can be accessed by typing the beginning of hidden name after a '.', e.g. '_'. This allows access to modules with '__all__' set, or to class-private attributes. Completions and the 'Expand Word' facility can save a lot of typing! Completions are currently limited to those in the namespaces. Names in an Editor window which are not via __main__ or sys.modules will not be found. Run the module once with your imports to correct this situation. Note that IDLE itself places quite a few modules in sys.modules, so much can be found by default, e.g. the re module. If you don't like the ACW popping up unbidden, simply make the delay longer or disable the extension. Or another option is the delay could be set to zero. Another alternative to preventing ACW popups is to disable the call tips extension. Python Shell window: Control-c interrupts executing command. Control-d sends end-of-file; closes window if typed at >>> prompt. Alt-/ expand word is also useful to reduce typing. Command history: Alt-p retrieves previous command matching what you have typed. On OS X use Control-p. Alt-n retrieves next. On OS X use Control-n. Return while cursor is on a previous command retrieves that command. Syntax colors: The coloring is applied in a background "thread", so you may occasionally see uncolorized text. To change the color scheme, use the Configure IDLE / Highlighting dialog. Python default syntax colors: Keywords orange Builtins royal purple Strings green Comments red Definitions blue Shell default colors: Console output brown stdout blue stderr red stdin black Other preferences: The font preferences, highlighting, keys, and general preferences can be changed via the Configure IDLE menu option. Be sure to note that keys can be user defined, IDLE ships with four built in key sets. In addition a user can create a custom key set in the Configure IDLE dialog under the keys tab. Command line usage: Enter idle -h at the command prompt to get a usage message. idle.py [-c command] [-d] [-e] [-s] [-t title] [arg] ... -c command run this command -d enable debugger -e edit mode; arguments are files to be edited -s run $IDLESTARTUP or $PYTHONSTARTUP first -t title set title of shell window If there are arguments: 1. If -e is used, arguments are files opened for editing and sys.argv reflects the arguments passed to IDLE itself. 2. Otherwise, if -c is used, all arguments are placed in sys.argv[1:...], with sys.argv[0] set to -c. 3. Otherwise, if neither -e nor -c is used, the first argument is a script which is executed with the remaining arguments in sys.argv[1:...] and sys.argv[0] set to the script name. If the script name is -, no script is executed but an interactive Python session is started; the arguments are still available in sys.argv. Running without a subprocess: (DEPRECATED in Python 3.4 see Issue 16123) If IDLE is started with the -n command line switch it will run in a single process and will not create the subprocess which runs the RPC Python execution server. This can be useful if Python cannot create the subprocess or the RPC socket interface on your platform. However, in this mode user code is not isolated from IDLE itself. Also, the environment is not restarted when Run/Run Module (F5) is selected. If your code has been modified, you must reload() the affected modules and re-import any specific items (e.g. from foo import baz) if the changes are to take effect. For these reasons, it is preferable to run IDLE with the default subprocess if at all possible. Extensions: IDLE contains an extension facility. See the beginning of config-extensions.def in the idlelib directory for further information. The default extensions are currently: FormatParagraph AutoExpand ZoomHeight ScriptBinding CallTips ParenMatch AutoComplete CodeContext IDLE History ============ This file contains the release messages for previous IDLE releases. As you read on you go back to the dark ages of IDLE's history. What's New in IDLEfork 0.8.1? ============================= *Release date: 22-Jul-2001* - New tarball released as a result of the 'revitalisation' of the IDLEfork project. - This release requires python 2.1 or better. Compatibility with earlier versions of python (especially ancient ones like 1.5x) is no longer a priority in IDLEfork development. - This release is based on a merging of the earlier IDLE fork work with current cvs IDLE (post IDLE version 0.8), with some minor additional coding by Kurt B. Kaiser and Stephen M. Gava. - This release is basically functional but also contains some known breakages, particularly with running things from the shell window. Also the debugger is not working, but I believe this was the case with the previous IDLE fork release (0.7.1) as well. - This release is being made now to mark the point at which IDLEfork is launching into a new stage of development. - IDLEfork CVS will now be branched to enable further development and exploration of the two "execution in a remote process" patches submitted by David Scherer (David's is currently in IDLEfork) and GvR, while stabilisation and development of less heavyweight improvements (like user customisation) can continue on the trunk. What's New in IDLEfork 0.7.1? ============================== *Release date: 15-Aug-2000* - First project tarball released. - This was the first release of IDLE fork, which at this stage was a combination of IDLE 0.5 and the VPython idle fork, with additional changes coded by David Scherer, Peter Schneider-Kamp and Nicholas Riley. IDLEfork 0.7.1 - 29 May 2000 ----------------------------- David Scherer - This is a modification of the CVS version of IDLE 0.5, updated as of 2000-03-09. It is alpha software and might be unstable. If it breaks, you get to keep both pieces. - If you have problems or suggestions, you should either contact me or post to the list at http://www.python.org/mailman/listinfo/idle-dev (making it clear that you are using this modified version of IDLE). - Changes: - The ExecBinding module, a replacement for ScriptBinding, executes programs in a separate process, piping standard I/O through an RPC mechanism to an OnDemandOutputWindow in IDLE. It supports executing unnamed programs (through a temporary file). It does not yet support debugging. - When running programs with ExecBinding, tracebacks will be clipped to exclude system modules. If, however, a system module calls back into the user program, that part of the traceback will be shown. - The OnDemandOutputWindow class has been improved. In particular, it now supports a readline() function used to implement user input, and a scroll_clear() operation which is used to hide the output of a previous run by scrolling it out of the window. - Startup behavior has been changed. By default IDLE starts up with just a blank editor window, rather than an interactive window. Opening a file in such a blank window replaces the (nonexistent) contents of that window instead of creating another window. Because of the need to have a well-known port for the ExecBinding protocol, only one copy of IDLE can be running. Additional invocations use the RPC mechanism to report their command line arguments to the copy already running. - The menus have been reorganized. In particular, the excessively large 'edit' menu has been split up into 'edit', 'format', and 'run'. - 'Python Documentation' now works on Windows, if the win32api module is present. - A few key bindings have been changed: F1 now loads Python Documentation instead of the IDLE help; shift-TAB is now a synonym for unindent. - New modules: ExecBinding.py Executes program through loader loader.py Bootstraps user program protocol.py RPC protocol Remote.py User-process interpreter spawn.py OS-specific code to start programs - Files modified: autoindent.py ( bindings tweaked ) bindings.py ( menus reorganized ) config.txt ( execbinding enabled ) editorwindow.py ( new menus, fixed 'Python Documentation' ) filelist.py ( hook for "open in same window" ) formatparagraph.py ( bindings tweaked ) idle.bat ( removed absolute pathname ) idle.pyw ( weird bug due to import with same name? ) iobinding.py ( open in same window, EOL convention ) keydefs.py ( bindings tweaked ) outputwindow.py ( readline, scroll_clear, etc ) pyshell.py ( changed startup behavior ) readme.txt ( ) IDLE 0.5 - February 2000 - Release Notes ---------------------------------------- This is an early release of IDLE, my own attempt at a Tkinter-based IDE for Python. (For a more detailed change log, see the file ChangeLog.) FEATURES IDLE has the following features: - coded in 100% pure Python, using the Tkinter GUI toolkit (i.e. Tcl/Tk) - cross-platform: works on Windows and Unix (on the Mac, there are currently problems with Tcl/Tk) - multi-window text editor with multiple undo, Python colorizing and many other features, e.g. smart indent and call tips - Python shell window (a.k.a. interactive interpreter) - debugger (not complete, but you can set breakpoints, view and step) USAGE The main program is in the file "idle.py"; on Unix, you should be able to run it by typing "./idle.py" to your shell. On Windows, you can run it by double-clicking it; you can use idle.pyw to avoid popping up a DOS console. If you want to pass command line arguments on Windows, use the batch file idle.bat. Command line arguments: files passed on the command line are executed, not opened for editing, unless you give the -e command line option. Try "./idle.py -h" to see other command line options. IDLE requires Python 1.5.2, so it is currently only usable with a Python 1.5.2 distribution. (An older version of IDLE is distributed with Python 1.5.2; you can drop this version on top of it.) COPYRIGHT IDLE is covered by the standard Python copyright notice (http://www.python.org/doc/Copyright.html). New in IDLE 0.5 (2/15/2000) --------------------------- Tons of stuff, much of it contributed by Tim Peters and Mark Hammond: - Status bar, displaying current line/column (Moshe Zadka). - Better stack viewer, using tree widget. (XXX Only used by Stack Viewer menu, not by the debugger.) - Format paragraph now recognizes Python block comments and reformats them correctly (MH) - New version of pyclbr.py parses top-level functions and understands much more of Python's syntax; this is reflected in the class and path browsers (TP) - Much better auto-indent; knows how to indent the insides of multi-line statements (TP) - Call tip window pops up when you type the name of a known function followed by an open parenthesis. Hit ESC or click elsewhere in the window to close the tip window (MH) - Comment out region now inserts ## to make it stand out more (TP) - New path and class browsers based on a tree widget that looks familiar to Windows users - Reworked script running commands to be more intuitive: I/O now always goes to the *Python Shell* window, and raw_input() works correctly. You use F5 to import/reload a module: this adds the module name to the __main__ namespace. You use Control-F5 to run a script: this runs the script *in* the __main__ namespace. The latter also sets sys.argv[] to the script name New in IDLE 0.4 (4/7/99) ------------------------ Most important change: a new menu entry "File -> Path browser", shows a 4-column hierarchical browser which lets you browse sys.path, directories, modules, and classes. Yes, it's a superset of the Class browser menu entry. There's also a new internal module, MultiScrolledLists.py, which provides the framework for this dialog. New in IDLE 0.3 (2/17/99) ------------------------- Most important changes: - Enabled support for running a module, with or without the debugger. Output goes to a new window. Pressing F5 in a module is effectively a reload of that module; Control-F5 loads it under the debugger. - Re-enable tearing off the Windows menu, and make a torn-off Windows menu update itself whenever a window is opened or closed. - Menu items can now be have a checkbox (when the menu label starts with "!"); use this for the Debugger and "Auto-open stack viewer" (was: JIT stack viewer) menu items. - Added a Quit button to the Debugger API. - The current directory is explicitly inserted into sys.path. - Fix the debugger (when using Python 1.5.2b2) to use canonical filenames for breakpoints, so these actually work. (There's still a lot of work to be done to the management of breakpoints in the debugger though.) - Closing a window that is still colorizing now actually works. - Allow dragging of the separator between the two list boxes in the class browser. - Bind ESC to "close window" of the debugger, stack viewer and class browser. It removes the selection highlighting in regular text windows. (These are standard Windows conventions.) New in IDLE 0.2 (1/8/99) ------------------------ Lots of changes; here are the highlights: General: - You can now write and configure your own IDLE extension modules; see extend.txt. File menu: The command to open the Python shell window is now in the File menu. Edit menu: New Find dialog with more options; replace dialog; find in files dialog. Commands to tabify or untabify a region. Command to format a paragraph. Debug menu: JIT (Just-In-Time) stack viewer toggle -- if set, the stack viewer automaticall pops up when you get a traceback. Windows menu: Zoom height -- make the window full height. Help menu: The help text now show up in a regular window so you can search and even edit it if you like. IDLE 0.1 was distributed with the Python 1.5.2b1 release on 12/22/98. ====================================================================== README FOR IDLE TESTS IN IDLELIB.IDLE_TEST 0. Quick Start Automated unit tests were added in 2.7 for Python 2.x and 3.3 for Python 3.x. To run the tests from a command line: python -m test.test_idle Human-mediated tests were added later in 2.7 and in 3.4. python -m idlelib.idle_test.htest 1. Test Files The idle directory, idlelib, has over 60 xyz.py files. The idle_test subdirectory should contain a test_xyz.py for each, where 'xyz' is lowercased even if xyz.py is not. Here is a possible template, with the blanks after after '.' and 'as', and before and after '_' to be filled in. import unittest from test.support import requires import idlelib. as class _Test(unittest.TestCase): def test_(self): if __name__ == '__main__': unittest.main(verbosity=2) Add the following at the end of xyy.py, with the appropriate name added after 'test_'. Some files already have something like this for htest. If so, insert the import and unittest.main lines before the htest lines. if __name__ == "__main__": import unittest unittest.main('idlelib.idle_test.test_', verbosity=2, exit=False) 2. GUI Tests When run as part of the Python test suite, Idle gui tests need to run test.support.requires('gui') (test.test_support in 2.7). A test is a gui test if it creates a Tk root or master object either directly or indirectly by instantiating a tkinter or idle class. For the benefit of test processes that either have no graphical environment available or are not allowed to use it, gui tests must be 'guarded' by "requires('gui')" in a setUp function or method. This will typically be setUpClass. To avoid interfering with other gui tests, all gui objects must be destroyed and deleted by the end of the test. Widgets, such as a Tk root, created in a setUpX function, should be destroyed in the corresponding tearDownX. Module and class widget attributes should also be deleted.. @classmethod def setUpClass(cls): requires('gui') cls.root = tk.Tk() @classmethod def tearDownClass(cls): cls.root.destroy() del cls.root Requires('gui') causes the test(s) it guards to be skipped if any of a few conditions are met: - The tests are being run by regrtest.py, and it was started without enabling the "gui" resource with the "-u" command line option. - The tests are being run on Windows by a service that is not allowed to interact with the graphical environment. - The tests are being run on Mac OSX in a process that cannot make a window manager connection. - tkinter.Tk cannot be successfully instantiated for some reason. - test.support.use_resources has been set by something other than regrtest.py and does not contain "gui". Tests of non-gui operations should avoid creating tk widgets. Incidental uses of tk variables and messageboxes can be replaced by the mock classes in idle_test/mock_tk.py. The mock text handles some uses of the tk Text widget. 3. Running Unit Tests Assume that xyz.py and test_xyz.py both end with a unittest.main() call. Running either from an Idle editor runs all tests in the test_xyz file with the version of Python running Idle. Test output appears in the Shell window. The 'verbosity=2' option lists all test methods in the file, which is appropriate when developing tests. The 'exit=False' option is needed in xyx.py files when an htest follows. The following command lines also run all test methods, including gui tests, in test_xyz.py. (Both '-m idlelib' and '-m idlelib.idle' start Idle and so cannot run tests.) python -m idlelib.xyz python -m idlelib.idle_test.test_xyz The following runs all idle_test/test_*.py tests interactively. >>> import unittest >>> unittest.main('idlelib.idle_test', verbosity=2) The following run all Idle tests at a command line. Option '-v' is the same as 'verbosity=2'. (For 2.7, replace 'test' in the second line with 'test.regrtest'.) python -m unittest -v idlelib.idle_test python -m test -v -ugui test_idle python -m test.test_idle The idle tests are 'discovered' by idlelib.idle_test.__init__.load_tests, which is also imported into test.test_idle. Normally, neither file should be changed when working on individual test modules. The third command runs unittest indirectly through regrtest. The same happens when the entire test suite is run with 'python -m test'. So that command must work for buildbots to stay green. Idle tests must not disturb the environment in a way that makes other tests fail (issue 18081). To run an individual Testcase or test method, extend the dotted name given to unittest on the command line. python -m unittest -v idlelib.idle_test.test_xyz.Test_case.test_meth 4. Human-mediated Tests Human-mediated tests are widget tests that cannot be automated but need human verification. They are contained in idlelib/idle_test/htest.py, which has instructions. (Some modules need an auxiliary function, identified with # htest # on the header line.) The set is about complete, though some tests need improvement. To run all htests, run the htest file from an editor or from the command line with: python -m idlelib.idle_test.htest What's New in IDLE 3.5.1? ========================= *Release date: 2015-12-06* - Issue 15348: Stop the debugger engine (normally in a user process) before closing the debugger window (running in the IDLE process). This prevents the RuntimeErrors that were being caught and ignored. - Issue #24455: Prevent IDLE from hanging when a) closing the shell while the debugger is active (15347); b) closing the debugger with the [X] button (15348); and c) activating the debugger when already active (24455). The patch by Mark Roseman does this by making two changes. 1. Suspend and resume the gui.interaction method with the tcl vwait mechanism intended for this purpose (instead of root.mainloop & .quit). 2. In gui.run, allow any existing interaction to terminate first. - Change 'The program' to 'Your program' in an IDLE 'kill program?' message to make it clearer that the program referred to is the currently running user program, not IDLE itself. - Issue #24750: Improve the appearance of the IDLE editor window status bar. Patch by Mark Roseman. - Issue #25313: Change the handling of new built-in text color themes to better address the compatibility problem introduced by the addition of IDLE Dark. Consistently use the revised idleConf.CurrentTheme everywhere in idlelib. - Issue #24782: Extension configuration is now a tab in the IDLE Preferences dialog rather than a separate dialog. The former tabs are now a sorted list. Patch by Mark Roseman. - Issue #22726: Re-activate the config dialog help button with some content about the other buttons and the new IDLE Dark theme. - Issue #24820: IDLE now has an 'IDLE Dark' built-in text color theme. It is more or less IDLE Classic inverted, with a cobalt blue background. Strings, comments, keywords, ... are still green, red, orange, ... . To use it with IDLEs released before November 2015, hit the 'Save as New Custom Theme' button and enter a new name, such as 'Custom Dark'. The custom theme will work with any IDLE release, and can be modified. - Issue #25224: README.txt is now an idlelib index for IDLE developers and curious users. The previous user content is now in the IDLE doc chapter. 'IDLE' now means 'Integrated Development and Learning Environment'. - Issue #24820: Users can now set breakpoint colors in Settings -> Custom Highlighting. Original patch by Mark Roseman. - Issue #24972: Inactive selection background now matches active selection background, as configured by users, on all systems. Found items are now always highlighted on Windows. Initial patch by Mark Roseman. - Issue #24570: Idle: make calltip and completion boxes appear on Macs affected by a tk regression. Initial patch by Mark Roseman. - Issue #24988: Idle ScrolledList context menus (used in debugger) now work on Mac Aqua. Patch by Mark Roseman. - Issue #24801: Make right-click for context menu work on Mac Aqua. Patch by Mark Roseman. - Issue #25173: Associate tkinter messageboxes with a specific widget. For Mac OSX, make them a 'sheet'. Patch by Mark Roseman. - Issue #25198: Enhance the initial html viewer now used for Idle Help. * Properly indent fixed-pitch text (patch by Mark Roseman). * Give code snippet a very Sphinx-like light blueish-gray background. * Re-use initial width and height set by users for shell and editor. * When the Table of Contents (TOC) menu is used, put the section header at the top of the screen. - Issue #25225: Condense and rewrite Idle doc section on text colors. - Issue #21995: Explain some differences between IDLE and console Python. - Issue #22820: Explain need for *print* when running file from Idle editor. - Issue #25224: Doc: augment Idle feature list and no-subprocess section. - Issue #25219: Update doc for Idle command line options. Some were missing and notes were not correct. - Issue #24861: Most of idlelib is private and subject to change. Use idleib.idle.* to start Idle. See idlelib.__init__.__doc__. - Issue #25199: Idle: add synchronization comments for future maintainers. - Issue #16893: Replace help.txt with help.html for Idle doc display. The new idlelib/help.html is rstripped Doc/build/html/library/idle.html. It looks better than help.txt and will better document Idle as released. The tkinter html viewer that works for this file was written by Mark Roseman. The now unused EditorWindow.HelpDialog class and helt.txt file are deprecated. - Issue #24199: Deprecate unused idlelib.idlever with possible removal in 3.6. - Issue #24790: Remove extraneous code (which also create 2 & 3 conflicts). What's New in IDLE 3.5.0? ========================= *Release date: 2015-09-13* - Issue #23672: Allow Idle to edit and run files with astral chars in name. Patch by Mohd Sanad Zaki Rizvi. - Issue 24745: Idle editor default font. Switch from Courier to platform-sensitive TkFixedFont. This should not affect current customized font selections. If there is a problem, edit $HOME/.idlerc/config-main.cfg and remove 'fontxxx' entries from [Editor Window]. Patch by Mark Roseman. - Issue #21192: Idle editor. When a file is run, put its name in the restart bar. Do not print false prompts. Original patch by Adnan Umer. - Issue #13884: Idle menus. Remove tearoff lines. Patch by Roger Serwy. - Issue #23184: remove unused names and imports in idlelib. Initial patch by Al Sweigart. - Issue #20577: Configuration of the max line length for the FormatParagraph extension has been moved from the General tab of the Idle preferences dialog to the FormatParagraph tab of the Config Extensions dialog. Patch by Tal Einat. - Issue #16893: Update Idle doc chapter to match current Idle and add new information. - Issue #3068: Add Idle extension configuration dialog to Options menu. Changes are written to HOME/.idlerc/config-extensions.cfg. Original patch by Tal Einat. - Issue #16233: A module browser (File : Class Browser, Alt+C) requires a editor window with a filename. When Class Browser is requested otherwise, from a shell, output window, or 'Untitled' editor, Idle no longer displays an error box. It now pops up an Open Module box (Alt+M). If a valid name is entered and a module is opened, a corresponding browser is also opened. - Issue #4832: Save As to type Python files automatically adds .py to the name you enter (even if your system does not display it). Some systems automatically add .txt when type is Text files. - Issue #21986: Code objects are not normally pickled by the pickle module. To match this, they are no longer pickled when running under Idle. - Issue #23180: Rename IDLE "Windows" menu item to "Window". Patch by Al Sweigart. - Issue #17390: Adjust Editor window title; remove 'Python', move version to end. - Issue #14105: Idle debugger breakpoints no longer disappear when inseting or deleting lines. - Issue #17172: Turtledemo can now be run from Idle. Currently, the entry is on the Help menu, but it may move to Run. Patch by Ramchandra Apt and Lita Cho. - Issue #21765: Add support for non-ascii identifiers to HyperParser. - Issue #21940: Add unittest for WidgetRedirector. Initial patch by Saimadhav Heblikar. - Issue #18592: Add unittest for SearchDialogBase. Patch by Phil Webster. - Issue #21694: Add unittest for ParenMatch. Patch by Saimadhav Heblikar. - Issue #21686: add unittest for HyperParser. Original patch by Saimadhav Heblikar. - Issue #12387: Add missing upper(lower)case versions of default Windows key bindings for Idle so Caps Lock does not disable them. Patch by Roger Serwy. - Issue #21695: Closing a Find-in-files output window while the search is still in progress no longer closes Idle. - Issue #18910: Add unittest for textView. Patch by Phil Webster. - Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar. - Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster. - Issue #21477: htest.py - Improve framework, complete set of tests. Patches by Saimadhav Heblikar - Issue #18104: Add idlelib/idle_test/htest.py with a few sample tests to begin consolidating and improving human-validated tests of Idle. Change other files as needed to work with htest. Running the module as __main__ runs all tests. - Issue #21139: Change default paragraph width to 72, the PEP 8 recommendation. - Issue #21284: Paragraph reformat test passes after user changes reformat width. - Issue #17654: Ensure IDLE menus are customized properly on OS X for non-framework builds and for all variants of Tk. What's New in IDLE 3.4.0? ========================= *Release date: 2014-03-16* - Issue #17390: Display Python version on Idle title bar. Initial patch by Edmond Burnett. - Issue #5066: Update IDLE docs. Patch by Todd Rovito. - Issue #17625: Close the replace dialog after it is used. - Issue #16226: Fix IDLE Path Browser crash. (Patch by Roger Serwy) - Issue #15853: Prevent IDLE crash on OS X when opening Preferences menu with certain versions of Tk 8.5. Initial patch by Kevin Walzer. What's New in IDLE 3.3.0? ========================= *Release date: 2012-09-29* - Issue #17625: Close the replace dialog after it is used. - Issue #7163: Propagate return value of sys.stdout.write. - Issue #15318: Prevent writing to sys.stdin. - Issue #4832: Modify IDLE to save files with .py extension by default on Windows and OS X (Tk 8.5) as it already does with X11 Tk. - Issue #13532, #15319: Check that arguments to sys.stdout.write are strings. - Issue # 12510: Attempt to get certain tool tips no longer crashes IDLE. Erroneous tool tips have been corrected. Default added for callables. - Issue10365: File open dialog now works instead of crashing even when parent window is closed while dialog is open. - Issue 14876: use user-selected font for highlight configuration. - Issue #14937: Perform auto-completion of filenames in strings even for non-ASCII filenames. Likewise for identifiers. - Issue #8515: Set __file__ when run file in IDLE. Initial patch by Bruce Frederiksen. - IDLE can be launched as `python -m idlelib` - Issue #14409: IDLE now properly executes commands in the Shell window when it cannot read the normal config files on startup and has to use the built-in default key bindings. There was previously a bug in one of the defaults. - Issue #3573: IDLE hangs when passing invalid command line args (directory(ies) instead of file(s)). - Issue #14018: Update checks for unstable system Tcl/Tk versions on OS X to include versions shipped with OS X 10.7 and 10.8 in addition to 10.6. What's New in IDLE 3.2.1? ========================= *Release date: 15-May-11* - Issue #6378: Further adjust idle.bat to start associated Python - Issue #11896: Save on Close failed despite selecting "Yes" in dialog. - Issue #1028: Ctrl-space binding to show completions was causing IDLE to exit. Tk < 8.5 was sending invalid Unicode null; replaced with valid null. - toggle failing on Tk 8.5, causing IDLE exits and strange selection behavior. Issue 4676. Improve selection extension behaviour. - toggle non-functional when NumLock set on Windows. Issue 3851. What's New in IDLE 3.1b1? ========================= *Release date: 06-May-09* - Use of 'filter' in keybindingDialog.py was causing custom key assignment to fail. Patch 5707 amaury.forgeotdarc. - Issue #4815: Offer conversion to UTF-8 if source files have no encoding declaration and are not encoded in UTF-8. - Issue #4008: Fix problems with non-ASCII source files. - Issue #4323: Always encode source as UTF-8 without asking the user (unless a different encoding is declared); remove user configuration of source encoding; all according to PEP 3120. - Issue #2665: On Windows, an IDLE installation upgraded from an old version would not start if a custom theme was defined. What's New in IDLE 2.7? (UNRELEASED, but merged into 3.1 releases above.) ======================= *Release date: XX-XXX-2010* - idle.py modified and simplified to better support developing experimental versions of IDLE which are not installed in the standard location. - OutputWindow/PyShell right click menu "Go to file/line" wasn't working with file paths containing spaces. Bug 5559. - Windows: Version string for the .chm help file changed, file not being accessed Patch 5783 Guilherme Polo - Allow multiple IDLE GUI/subprocess pairs to exist simultaneously. Thanks to David Scherer for suggesting the use of an ephemeral port for the GUI. Patch 1529142 Weeble. - Remove port spec from run.py and fix bug where subprocess fails to extract port from command line when warnings are present. - Tk 8.5 Text widget requires 'wordprocessor' tabstyle attr to handle mixed space/tab properly. Issue 5129, patch by Guilherme Polo. - Issue #3549: On MacOS the preferences menu was not present - IDLE would print a "Unhandled server exception!" message when internal debugging is enabled. - Issue #4455: IDLE failed to display the windows list when two windows have the same title. - Issue #4383: When IDLE cannot make the connection to its subprocess, it would fail to properly display the error message. - help() was not paging to the shell. Issue1650. - CodeContext was not importing. - Corrected two 3.0 compatibility errors reported by Mark Summerfield: http://mail.python.org/pipermail/python-3000/2007-December/011491.html - Shell was not colorizing due to bug introduced at r57998, Bug 1586. - Issue #1585: IDLE uses non-existent xrange() function. - Windows EOL sequence not converted correctly, encoding error. Caused file save to fail. Bug 1130. - IDLE converted to Python 3000 syntax. - Strings became Unicode. - CallTips module now uses the inspect module to produce the argspec. - IDLE modules now use absolute import instead of implied relative import. - atexit call replaces sys.exitfunc. The functionality of delete-exitfunc flag in config-main.cfg remains unchanged: if set, registered exit functions will be cleared before IDLE exits. What's New in IDLE 2.6 ====================== *Release date: 01-Oct-2008*, merged into 3.0 releases detailed above (3.0rc2) - Issue #2665: On Windows, an IDLE installation upgraded from an old version would not start if a custom theme was defined. - Home / Control-A toggles between left margin and end of leading white space. issue1196903, patch by Jeff Shute. - Improved AutoCompleteWindow logic. issue2062, patch by Tal Einat. - Autocompletion of filenames now support alternate separators, e.g. the '/' char on Windows. issue2061 Patch by Tal Einat. - Configured selection highlighting colors were ignored; updating highlighting in the config dialog would cause non-Python files to be colored as if they were Python source; improve use of ColorDelagator. Patch 1334. Tal Einat. - ScriptBinding event handlers weren't returning 'break'. Patch 2050, Tal Einat - There was an error on exit if no sys.exitfunc was defined. Issue 1647. - Could not open files in .idlerc directory if latter was hidden on Windows. Issue 1743, Issue 1862. - Configure Dialog: improved layout for keybinding. Patch 1457 Tal Einat. - tabpage.py updated: tabbedPages.py now supports multiple dynamic rows of tabs. Patch 1612746 Tal Einat. - Add confirmation dialog before printing. Patch 1717170 Tal Einat. - Show paste position if > 80 col. Patch 1659326 Tal Einat. - Update cursor color without restarting. Patch 1725576 Tal Einat. - Allow keyboard interrupt only when user code is executing in subprocess. Patch 1225 Tal Einat (reworked from IDLE-Spoon). - configDialog cleanup. Patch 1730217 Tal Einat. - textView cleanup. Patch 1718043 Tal Einat. - Clean up EditorWindow close. - Patch 1693258: Fix for duplicate "preferences" menu-OS X. Backport of r56204. - OSX: Avoid crash for those versions of Tcl/Tk which don't have a console - Bug in idlelib.MultiCall: Options dialog was crashing IDLE if there was an option in config-extensions w/o a value. Patch #1672481, Tal Einat - Corrected some bugs in AutoComplete. Also, Page Up/Down in ACW implemented; mouse and cursor selection in ACWindow implemented; double Tab inserts current selection and closes ACW (similar to double-click and Return); scroll wheel now works in ACW. Added AutoComplete instructions to IDLE Help. - AutoCompleteWindow moved below input line, will move above if there isn't enough space. Patch 1621265 Tal Einat - Calltips now 'handle' tuples in the argument list (display '' :) Suggested solution by Christos Georgiou, Bug 791968. - Add 'raw' support to configHandler. Patch 1650174 Tal Einat. - Avoid hang when encountering a duplicate in a completion list. Bug 1571112. - Patch #1362975: Rework CodeContext indentation algorithm to avoid hard-coding pixel widths. - Bug #813342: Start the IDLE subprocess with -Qnew if the parent is started with that option. - Honor the "Cancel" action in the save dialog (Debian bug #299092) - Some syntax errors were being caught by tokenize during the tabnanny check, resulting in obscure error messages. Do the syntax check first. Bug 1562716, 1562719 - IDLE's version number takes a big jump to match the version number of the Python release of which it's a part. What's New in IDLE 1.2? ======================= *Release date: 19-SEP-2006* - File menu hotkeys: there were three 'p' assignments. Reassign the 'Save Copy As' and 'Print' hotkeys to 'y' and 't'. Change the Shell hotkey from 's' to 'l'. - IDLE honors new quit() and exit() commands from site.py Quitter() object. Patch 1540892, Jim Jewett - The 'with' statement is now a Code Context block opener. Patch 1540851, Jim Jewett - Retrieval of previous shell command was not always preserving indentation (since 1.2a1) Patch 1528468 Tal Einat. - Changing tokenize (39046) to detect dedent broke tabnanny check (since 1.2a1) - ToggleTab dialog was setting indent to 8 even if cancelled (since 1.2a1). - When used w/o subprocess, all exceptions were preceded by an error message claiming they were IDLE internal errors (since 1.2a1). - Bug #1525817: Don't truncate short lines in IDLE's tool tips. - Bug #1517990: IDLE keybindings on MacOS X now work correctly - Bug #1517996: IDLE now longer shows the default Tk menu when a path browser, class browser or debugger is the frontmost window on MacOS X - EditorWindow.test() was failing. Bug 1417598 - EditorWindow failed when used stand-alone if sys.ps1 not set. Bug 1010370 Dave Florek - Tooltips failed on new-syle class __init__ args. Bug 1027566 Loren Guthrie - Avoid occasional failure to detect closing paren properly. Patch 1407280 Tal Einat - Rebinding Tab key was inserting 'tab' instead of 'Tab'. Bug 1179168. - Colorizer now handles # correctly, also unicode strings and 'as' keyword in comment directly following import command. Closes 1325071. Patch 1479219 Tal Einat - Patch #1162825: Support non-ASCII characters in IDLE window titles. - Source file f.flush() after writing; trying to avoid lossage if user kills GUI. - Options / Keys / Advanced dialog made functional. Also, allow binding of 'movement' keys. - 'syntax' patch adds improved calltips and a new class attribute listbox. MultiCall module allows binding multiple actions to an event. Patch 906702 Noam Raphael - Better indentation after first line of string continuation. IDLEfork Patch 681992, Noam Raphael - Fixed CodeContext alignment problem, following suggestion from Tal Einat. - Increased performance in CodeContext extension Patch 936169 Noam Raphael - Mac line endings were incorrect when pasting code from some browsers when using X11 and the Fink distribution. Python Bug 1263656. - when cursor is on a previous command retrieves that command. Instead of replacing the input line, the previous command is now appended to the input line. Indentation is preserved, and undo is enabled. Patch 1196917 Jeff Shute - Clarify "tab/space" Error Dialog and "Tab Width" Dialog associated with the Untabify command. - Corrected "tab/space" Error Dialog to show correct menu for Untabify. Patch 1196980 Jeff Shute - New files are colorized by default, and colorizing is removed when saving as non-Python files. Patch 1196895 Jeff Shute Closes Python Bugs 775012 and 800432, partial fix IDLEfork 763524 - Improve subprocess link error notification. - run.py: use Queue's blocking feature instead of sleeping in the main loop. Patch # 1190163 Michiel de Hoon - Add config-main option to make the 'history' feature non-cyclic. Default remains cyclic. Python Patch 914546 Noam Raphael. - Removed ability to configure tabs indent from Options dialog. This 'feature' has never worked and no one has complained. It is still possible to set a default tabs (v. spaces) indent 'manually' via config-main.def (or to turn on tabs for the current EditorWindow via the Format menu) but IDLE will encourage indentation via spaces. - Enable setting the indentation width using the Options dialog. Bug # 783877 - Add keybindings for del-word-left and del-word-right. - Discourage using an indent width other than 8 when using tabs to indent Python code. - Restore use of EditorWindow.set_indentation_params(), was dead code since Autoindent was merged into EditorWindow. This allows IDLE to conform to the indentation width of a loaded file. (But it still will not switch to tabs even if the file uses tabs.) Any change in indent width is local to that window. - Add Tabnanny check before Run/F5, not just when Checking module. - If an extension can't be loaded, print warning and skip it instead of erroring out. - Improve error handling when .idlerc can't be created (warn and exit). - The GUI was hanging if the shell window was closed while a raw_input() was pending. Restored the quit() of the readline() mainloop(). http://mail.python.org/pipermail/idle-dev/2004-December/002307.html - The remote procedure call module rpc.py can now access data attributes of remote registered objects. Changes to these attributes are local, however. What's New in IDLE 1.1? ======================= *Release date: 30-NOV-2004* - On OpenBSD, terminating IDLE with ctrl-c from the command line caused a stuck subprocess MainThread because only the SocketThread was exiting. - Saving a Keyset w/o making changes (by using the "Save as New Custom Key Set" button) caused IDLE to fail on restart (no new keyset was created in config-keys.cfg). Also true for Theme/highlights. Python Bug 1064535. - A change to the linecache.py API caused IDLE to exit when an exception was raised while running without the subprocess (-n switch). Python Bug 1063840. - When paragraph reformat width was made configurable, a bug was introduced that caused reformatting of comment blocks to ignore how far the block was indented, effectively adding the indentation width to the reformat width. This has been repaired, and the reformat width is again a bound on the total width of reformatted lines. - Improve keyboard focus binding, especially in Windows menu. Improve window raising, especially in the Windows menu and in the debugger. IDLEfork 763524. - If user passes a non-existent filename on the commandline, just open a new file, don't raise a dialog. IDLEfork 854928. - EditorWindow.py was not finding the .chm help file on Windows. Typo at Rev 1.54. Python Bug 990954 - checking sys.platform for substring 'win' was breaking IDLE docs on Mac (darwin). Also, Mac Safari browser requires full file:// URIs. SF 900580. - Redirect the warning stream to the shell during the ScriptBinding check of user code and format the warning similarly to an exception for both that check and for runtime warnings raised in the subprocess. - CodeContext hint pane visibility state is now persistent across sessions. The pane no longer appears in the shell window. Added capability to limit extensions to shell window or editor windows. Noam Raphael addition to Patch 936169. - Paragraph reformat width is now a configurable parameter in the Options GUI. - New Extension: CodeContext. Provides block structuring hints for code which has scrolled above an edit window. Patch 936169 Noam Raphael. - If nulls somehow got into the strings in recent-files.lst EditorWindow.update_recent_files_list() was failing. Python Bug 931336. - If the normal background is changed via Configure/Highlighting, it will update immediately, thanks to the previously mentioned patch by Nigel Rowe. - Add a highlight theme for builtin keywords. Python Patch 805830 Nigel Rowe This also fixed IDLEfork bug [ 693418 ] Normal text background color not refreshed and Python bug [897872 ] Unknown color name on HP-UX - rpc.py:SocketIO - Large modules were generating large pickles when downloaded to the execution server. The return of the OK response from the subprocess initialization was interfering and causing the sending socket to be not ready. Add an IO ready test to fix this. Moved the polling IO ready test into pollpacket(). - Fix typo in rpc.py, s/b "pickle.PicklingError" not "pickle.UnpicklingError". - Added a Tk error dialog to run.py inform the user if the subprocess can't connect to the user GUI process. Added a timeout to the GUI's listening socket. Added Tk error dialogs to PyShell.py to announce a failure to bind the port or connect to the subprocess. Clean up error handling during connection initiation phase. This is an update of Python Patch 778323. - Print correct exception even if source file changed since shell was restarted. IDLEfork Patch 869012 Noam Raphael - Keybindings with the Shift modifier now work correctly. So do bindings which use the Space key. Limit unmodified user keybindings to the function keys. Python Bug 775353, IDLEfork Bugs 755647, 761557 - After an exception, run.py was not setting the exception vector. Noam Raphael suggested correcting this so pdb's postmortem pm() would work. IDLEfork Patch 844675 - IDLE now does not fail to save the file anymore if the Tk buffer is not a Unicode string, yet eol_convention is. Python Bugs 774680, 788378 - IDLE didn't start correctly when Python was installed in "Program Files" on W2K and XP. Python Bugs 780451, 784183 - config-main.def documentation incorrectly referred to idle- instead of config- filenames. SF 782759 Also added note about .idlerc location. What's New in IDLE 1.0? ======================= *Release date: 29-Jul-2003* - Added a banner to the shell discussing warnings possibly raised by personal firewall software. Added same comment to README.txt. - Calltip error when docstring was None Python Bug 775541 - Updated extend.txt, help.txt, and config-extensions.def to correctly reflect the current status of the configuration system. Python Bug 768469 - Fixed: Call Tip Trimming May Loop Forever. Python Patch 769142 (Daniels) - Replaced apply(f, args, kwds) with f(*args, **kwargs) to improve performance Python Patch 768187 - Break or continue statements outside a loop were causing IDLE crash Python Bug 767794 - Convert Unicode strings from readline to IOBinding.encoding. Also set sys.std{in|out|err}.encoding, for both the local and the subprocess case. SF IDLEfork patch 682347. - Extend AboutDialog.ViewFile() to support file encodings. Make the CREDITS file Latin-1. - Updated the About dialog to reflect re-integration into Python. Provide buttons to display Python's NEWS, License, and Credits, plus additional buttons for IDLE's README and NEWS. - TextViewer() now has a third parameter which allows inserting text into the viewer instead of reading from a file. - (Created the .../Lib/idlelib directory in the Python CVS, which is a clone of IDLEfork modified to install in the Python environment. The code in the interrupt module has been moved to thread.interrupt_main(). ) - Printing the Shell window was failing if it was not saved first SF 748975 - When using the Search in Files dialog, if the user had a selection highlighted in his Editor window, insert it into the dialog search field. - The Python Shell entry was disappearing from the Windows menu. - Update the Windows file list when a file name change occurs - Change to File / Open Module: always pop up the dialog, using the current selection as the default value. This is easier to use habitually. - Avoided a problem with starting the subprocess when 'localhost' doesn't resolve to the user's loopback interface. SF 747772 - Fixed an issue with highlighted errors never de-colorizing. SF 747677. Also improved notification of Tabnanny Token Error. - File / New will by default save in the directory of the Edit window from which it was initiated. SF 748973 Guido van Rossum patch. What's New in IDLEfork 0.9b1? ============================= *Release date: 02-Jun-2003* - The current working directory of the execution environment (and shell following completion of execution) is now that of the module being run. - Added the delete-exitfunc option to config-main.def. (This option is not included in the Options dialog.) Setting this to True (the default) will cause IDLE to not run sys.exitfunc/atexit when the subprocess exits. - IDLE now preserves the line ending codes when editing a file produced on a different platform. SF 661759, SF 538584 - Reduced default editor font size to 10 point and increased window height to provide a better initial impression on Windows. - Options / Fonts/Tabs / Set Base Editor Font: List box was not highlighting the default font when first installed on Windows. SF 661676 - Added Autosave feature: when user runs code from edit window, if the file has been modified IDLE will silently save it if Autosave is enabled. The option is set in the Options dialog, and the default is to prompt the user to save the file. SF 661318 Bruce Sherwood patch. - Improved the RESTART annotation in the shell window when the user restarts the shell while it is generating output. Also improved annotation when user repeatedly hammers the Ctrl-F6 restart. - Allow IDLE to run when not installed and cwd is not the IDLE directory SF Patch 686254 "Run IDLEfork from any directory without set-up" - Raphael - When a module is run from an EditorWindow: if its directory is not in sys.path, prepend it. This allows the module to import other modules in the same directory. Do the same for a script run from the command line. - Correctly restart the subprocess if it is running user code and the user attempts to run some other module or restarts the shell. Do the same if the link is broken and it is possible to restart the subprocess and re- connect to the GUI. SF RFE 661321. - Improved exception reporting when running commands or scripts from the command line. - Added a -n command line switch to start IDLE without the subprocess. Removed the Shell menu when running in that mode. Updated help messages. - Added a comment to the shell startup header to indicate when IDLE is not using the subprocess. - Restore the ability to run without the subprocess. This can be important for some platforms or configurations. (Running without the subprocess allows the debugger to trace through parts of IDLE itself, which may or may not be desirable, depending on your point of view. In addition, the traditional reload/import tricks must be use if user source code is changed.) This is helpful for developing IDLE using IDLE, because one instance can be used to edit the code and a separate instance run to test changes. (Multiple concurrent IDLE instances with subprocesses is a future feature) - Improve the error message a user gets when saving a file with non-ASCII characters and no source encoding is specified. Done by adding a dialog 'EncodingMessage', which contains the line to add in a fixed-font entry widget, and which has a button to add that line to the file automatically. Also, add a configuration option 'EditorWindow/encoding', which has three possible values: none, utf-8, and locale. None is the default: IDLE will show this dialog when non-ASCII characters are encountered. utf-8 means that files with non-ASCII characters are saved as utf-8-with-bom. locale means that files are saved in the locale's encoding; the dialog is only displayed if the source contains characters outside the locale's charset. SF 710733 - Loewis - Improved I/O response by tweaking the wait parameter in various calls to signal.signal(). - Implemented a threaded subprocess which allows interrupting a pass loop in user code using the 'interrupt' extension. User code runs in MainThread, while the RPCServer is handled by SockThread. This is necessary because Windows doesn't support signals. - Implemented the 'interrupt' extension module, which allows a subthread to raise a KeyboardInterrupt in the main thread. - Attempting to save the shell raised an error related to saving breakpoints, which are not implemented in the shell - Provide a correct message when 'exit' or 'quit' are entered at the IDLE command prompt SF 695861 - Eliminate extra blank line in shell output caused by not flushing stdout when user code ends with an unterminated print. SF 695861 - Moved responsibility for exception formatting (i.e. pruning IDLE internal calls) out of rpc.py into the client and server. - Exit IDLE cleanly even when doing subprocess I/O - Handle subprocess interrupt with an RPC message. - Restart the subprocess if it terminates itself. (VPython programs do that) - Support subclassing of exceptions, including in the shell, by moving the exception formatting to the subprocess. What's New in IDLEfork 0.9 Alpha 2? =================================== *Release date: 27-Jan-2003* - Updated INSTALL.txt to claify use of the python2 rpm. - Improved formatting in IDLE Help. - Run menu: Replace "Run Script" with "Run Module". - Code encountering an unhandled exception under the debugger now shows the correct traceback, with IDLE internal levels pruned out. - If an exception occurs entirely in IDLE, don't prune the IDLE internal modules from the traceback displayed. - Class Browser and Path Browser now use Alt-Key-2 for vertical zoom. - IDLE icons will now install correctly even when setup.py is run from the build directory - Class Browser now compatible with Python2.3 version of pyclbr.py - Left cursor move in presence of selected text now moves from left end of the selection. - Add Meta keybindings to "IDLE Classic Windows" to handle reversed Alt/Meta on some Linux distros. - Change default: IDLE now starts with Python Shell. - Removed the File Path from the Additional Help Sources scrolled list. - Add capability to access Additional Help Sources on the web if the Help File Path begins with //http or www. (Otherwise local path is validated, as before.) - Additional Help Sources were not being posted on the Help menu in the order entered. Implement sorting the list by [HelpFiles] 'option' number. - Add Browse button to New Help Source dialog. Arrange to start in Python/Doc if platform is Windows, otherwise start in current directory. - Put the Additional Help Sources directly on the Help menu instead of in an Extra Help cascade menu. Rearrange the Help menu so the Additional Help Sources come last. Update help.txt appropriately. - Fix Tk root pop-ups in configSectionNameDialog.py and configDialog.py - Uniform capitalization in General tab of ConfigDialog, update the doc string. - Fix bug in ConfigDialog where SaveAllChangedConfig() was unexpectedly deleting Additional Help Sources from the user's config file. - Make configHelpSourceEdit OK button the default and bind - Fix Tk root pop-ups in configHelpSourceEdit: error dialogs not attached to parents. - Use os.startfile() to open both Additional Help and Python Help on the Windows platform. The application associated with the file type will act as the viewer. Windows help files (.chm) are now supported via the Settings/General/Additional Help facility. - If Python Help files are installed locally on Linux, use them instead of accessing python.org. - Make the methods for finding the Python help docs more robust, and make them work in the installed configuration, also. - On the Save Before Run dialog, make the OK button the default. One less mouse action! - Add a method: EditorWindow.get_geometry() for future use in implementing window location persistence. - Removed the "Help/Advice" menu entry. Thanks, David! We'll remember! - Change the "Classic Windows" theme's paste key to be . - Rearrange the Shell menu to put Stack Viewer entries adjacent. - Add the ability to restart the subprocess interpreter from the shell window; add an associated menu entry "Shell/Restart" with binding Control-F6. Update IDLE help. - Upon a restart, annotate the shell window with a "restart boundary". Add a shell window menu "Shell/View Restart" with binding F6 to jump to the most recent restart boundary. - Add Shell menu to Python Shell; change "Settings" to "Options". - Remove incorrect comment in setup.py: IDLEfork is now installed as a package. - Add INSTALL.txt, HISTORY.txt, NEWS.txt to installed configuration. - In installer text, fix reference to Visual Python, should be VPython. Properly credit David Scherer. - Modified idle, idle.py, idle.pyw to improve exception handling. What's New in IDLEfork 0.9 Alpha 1? =================================== *Release date: 31-Dec-2002* - First release of major new functionality. For further details refer to Idle-dev and/or the Sourceforge CVS. - Adapted to the Mac platform. - Overhauled the IDLE startup options and revised the idle -h help message, which provides details of command line usage. - Multiple bug fixes and usability enhancements. - Introduced the new RPC implementation, which includes a debugger. The output of user code is to the shell, and the shell may be used to inspect the environment after the run has finished. (In version 0.8.1 the shell environment was separate from the environment of the user code.) - Introduced the configuration GUI and a new About dialog. - Removed David Scherer's Remote Procedure Call code and replaced with Guido van Rossum's. GvR code has support for the IDLE debugger and uses the shell to inspect the environment of code Run from an Edit window. Files removed: ExecBinding.py, loader.py, protocol.py, Remote.py, spawn.py -------------------------------------------------------------------- Refer to HISTORY.txt for additional information on earlier releases. -------------------------------------------------------------------- README.txt: an index to idlelib files and the IDLE menu. IDLE is Pythons Integrated Development and Learning Environment. The user documentation is part of the Library Reference and is available in IDLE by selecting Help => IDLE Help. This README documents idlelib for IDLE developers and curious users. IDLELIB FILES lists files alphabetically by category, with a short description of each. IDLE MENU show the menu tree, annotated with the module or module object that implements the corresponding function. This file is descriptive, not prescriptive, and may have errors and omissions and lag behind changes in idlelib. IDLELIB FILES Implemetation files not in IDLE MENU are marked (nim). Deprecated files and objects are listed separately as the end. Startup ------- __init__.py # import, does nothing __main__.py # -m, starts IDLE idle.bat idle.py idle.pyw Implementation -------------- AutoComplete.py # Complete attribute names or filenames. AutoCompleteWindow.py # Display completions. AutoExpand.py # Expand word with previous word in file. Bindings.py # Define most of IDLE menu. CallTipWindow.py # Display calltip. CallTips.py # Create calltip text. ClassBrowser.py # Create module browser window. CodeContext.py # Show compound statement headers otherwise not visible. ColorDelegator.py # Colorize text (nim). Debugger.py # Debug code run from editor; show window. Delegator.py # Define base class for delegators (nim). EditorWindow.py # Define most of editor and utility functions. FileList.py # Open files and manage list of open windows (nim). FormatParagraph.py# Re-wrap multiline strings and comments. GrepDialog.py # Find all occurrences of pattern in multiple files. HyperParser.py # Parse code around a given index. IOBinding.py # Open, read, and write files IdleHistory.py # Get previous or next user input in shell (nim) MultiCall.py # Wrap tk widget to allow multiple calls per event (nim). MultiStatusBar.py # Define status bar for windows (nim). ObjectBrowser.py # Define class used in StackViewer (nim). OutputWindow.py # Create window for grep output. ParenMatch.py # Match fenceposts: (), [], and {}. PathBrowser.py # Create path browser window. Percolator.py # Manage delegator stack (nim). PyParse.py # Give information on code indentation PyShell.py # Start IDLE, manage shell, complete editor window RemoteDebugger.py # Debug code run in remote process. RemoteObjectBrowser.py # Communicate objects between processes with rpc (nim). ReplaceDialog.py # Search and replace pattern in text. RstripExtension.py# Strip trailing whitespace ScriptBinding.py # Check and run user code. ScrolledList.py # Define ScrolledList widget for IDLE (nim). SearchDialog.py # Search for pattern in text. SearchDialogBase.py # Define base for search, replace, and grep dialogs. SearchEngine.py # Define engine for all 3 search dialogs. StackViewer.py # View stack after exception. TreeWidget.py # Define tree widger, used in browsers (nim). UndoDelegator.py # Manage undo stack. WidgetRedirector.py # Intercept widget subcommands (for percolator) (nim). WindowList.py # Manage window list and define listed top level. ZoomHeight.py # Zoom window to full height of screen. aboutDialog.py # Display About IDLE dialog. configDialog.py # Display user configuration dialogs. configHandler.py # Load, fetch, and save configuration (nim). configHelpSourceEdit.py # Specify help source. configSectionNameDialog.py # Spefify user config section name dynOptionMenuWidget.py # define mutable OptionMenu widget (nim). help.py # Display IDLE's html doc. keybindingDialog.py # Change keybindings. macosxSupport.py # Help IDLE run on Macs (nim). rpc.py # Commuicate between idle and user processes (nim). run.py # Manage user code execution subprocess. tabbedpages.py # Define tabbed pages widget (nim). textView.py # Define read-only text widget (nim). Configuration ------------- config-extensions.def # Defaults for extensions config-highlight.def # Defaults for colorizing config-keys.def # Defaults for key bindings config-main.def # Defai;ts fpr font and geneal Text ---- CREDITS.txt # not maintained, displayed by About IDLE HISTORY.txt # NEWS up to July 2001 NEWS.txt # commits, displayed by About IDLE README.txt # this file, displeyed by About IDLE TODO.txt # needs review extend.txt # about writing extensions help.html # copy of idle.html in docs, displayed by IDLE Help Subdirectories -------------- Icons # small image files idle_test # files for human test and automated unit tests Unused and Deprecated files and objects (nim) --------------------------------------------- EditorWindow.py: Helpdialog and helpDialog ToolTip.py: unused. help.txt idlever.py IDLE MENUS Top level items and most submenu items are defined in Bindings. Extenstions add submenu items when active. The names given are found, quoted, in one of these modules, paired with a '<>'. Each pseudoevent is bound to an event handler. Some event handlers call another function that does the actual work. The annotations below are intended to at least give the module where the actual work is done. File # IOBindig except as noted New File Open... # IOBinding.open Open Module Recent Files Class Browser # Class Browser Path Browser # Path Browser --- Save # IDBinding.save Save As... # IOBinding.save_as Save Copy As... # IOBindling.save_a_copy --- Print Window # IOBinding.print_window --- Close Exit Edit Undo # undoDelegator Redo # undoDelegator --- Cut Copy Paste Select All --- # Next 5 items use SearchEngine; dialogs use SearchDialogBase Find # Search Dialog Find Again Find Selection Find in Files... # GrepDialog Replace... # ReplaceDialog Go to Line Show Completions # AutoComplete extension and AutoCompleteWidow (&HP) Expand Word # AutoExpand extension Show call tip # Calltips extension and CalltipWindow (& Hyperparser) Show surrounding parens # ParenMatch (& Hyperparser) Shell # PyShell View Last Restart # PyShell.? Restart Shell # PyShell.? Debug (Shell only) Go to File/Line Debugger # Debugger, RemoteDebugger Stack Viewer # StackViewer Auto-open Stack Viewer # StackViewer Format (Editor only) Indent Region Dedent Region Comment Out Region Uncomment Region Tabify Region Untabify Region Toggle Tabs New Indent Width Format Paragraph # FormatParagraph extension --- Strip tailing whitespace # RstripExtension extension Run (Editor only) Python Shell # PyShell --- Check Module # ScriptBinding Run Module # ScriptBinding Options Configure IDLE # configDialog (tabs in the dialog) Font tab # onfig-main.def Highlight tab # configSectionNameDialog, config-highlight.def Keys tab # keybindingDialog, configSectionNameDialog, onfig-keus.def General tab # configHelpSourceEdit, config-main.def Configure Extensions # configDialog Xyz tab # xyz.py, config-extensions.def --- Code Context (editor only) # CodeContext extension Window Zoomheight # ZoomHeight extension --- # WindowList Help About IDLE # aboutDialog --- IDLE Help # help Python Doc Turtle Demo --- (right click) Defined in EditorWindow, PyShell, Output Cut Copy Paste --- Go to file/line (shell and output only) Set Breakpoint (editor only) Clear Breakpoint (editor only) Defined in Debugger Go to source line Show stack frame Original IDLE todo, much of it now outdated: ============================================ TO DO: - improve debugger: - manage breakpoints globally, allow bp deletion, tbreak, cbreak etc. - real object browser - help on how to use it (a simple help button will do wonders) - performance? (updates of large sets of locals are slow) - better integration of "debug module" - debugger should be global resource (attached to flist, not to shell) - fix the stupid bug where you need to step twice - display class name in stack viewer entries for methods - suppress tracing through IDLE internals (e.g. print) DONE - add a button to suppress through a specific module or class or method - more object inspection to stack viewer, e.g. to view all array items - insert the initial current directory into sys.path DONE - default directory attribute for each window instead of only for windows that have an associated filename - command expansion from keywords, module contents, other buffers, etc. - "Recent documents" menu item DONE - Filter region command - Optional horizontal scroll bar - more Emacsisms: - ^K should cut to buffer - M-[, M-] to move by paragraphs - incremental search? - search should indicate wrap-around in some way - restructure state sensitive code to avoid testing flags all the time - persistent user state (e.g. window and cursor positions, bindings) - make backups when saving - check file mtimes at various points - Pluggable interface with RCS/CVS/Perforce/Clearcase - better help? - don't open second class browser on same module (nor second path browser) - unify class and path browsers - Need to define a standard way whereby one can determine one is running inside IDLE (needed for Tk mainloop, also handy for $PYTHONSTARTUP) - Add more utility methods for use by extensions (a la get_selection) - Way to run command in totally separate interpreter (fork+os.system?) DONE - Way to find definition of fully-qualified name: In other words, select "UserDict.UserDict", hit some magic key and it loads up UserDict.py and finds the first def or class for UserDict. - need a way to force colorization on/off - need a way to force auto-indent on/off Details: - ^O (on Unix -- open-line) should honor autoindent - after paste, show end of pasted text - on Windows, should turn short filename to long filename (not only in argv!) (shouldn't this be done -- or undone -- by ntpath.normpath?) - new autoindent after colon even indents when the colon is in a comment! - sometimes forward slashes in pathname remain - sometimes star in window name remains in Windows menu - With unix bindings, ESC by itself is ignored - Sometimes for no apparent reason a selection from the cursor to the end of the command buffer appears, which is hard to get rid of because it stays when you are typing! - The Line/Col in the status bar can be wrong initially in PyShell DONE Structural problems: - too much knowledge in FileList about EditorWindow (for example) - should add some primitives for accessing the selection etc. to repeat cumbersome code over and over ====================================================================== Jeff Bauer suggests: - Open Module doesn't appear to handle hierarchical packages. - Class browser should also allow hierarchical packages. - Open and Open Module could benefit from a history, DONE either command line style, or Microsoft recent-file style. - Add a Smalltalk-style inspector (i.e. Tkinspect) The last suggestion is already a reality, but not yet integrated into IDLE. I use a module called inspector.py, that used to be available from python.org(?) It no longer appears to be in the contributed section, and the source has no author attribution. In any case, the code is useful for visually navigating an object's attributes, including its container hierarchy. >>> from inspector import Tkinspect >>> Tkinspect(None, myObject) Tkinspect could probably be extended and refined to integrate better into IDLE. ====================================================================== Comparison to PTUI ------------------ + PTUI's help is better (HTML!) + PTUI can attach a shell to any module + PTUI has some more I/O commands: open multiple append examine (what's that?) ====================================================================== Notes after trying to run Grail ------------------------------- - Grail does stuff to sys.path based on sys.argv[0]; you must set sys.argv[0] to something decent first (it is normally set to the path of the idle script). - Grail must be exec'ed in __main__ because that's imported by some other parts of Grail. - Grail uses a module called History and so does idle :-( ====================================================================== Robin Friedrich's items: Things I'd like to see: - I'd like support for shift-click extending the selection. There's a bug now that it doesn't work the first time you try it. - Printing is needed. How hard can that be on Windows? FIRST CUT DONE - The python-mode trick of autoindenting a line with is neat and very handy. - (someday) a spellchecker for docstrings and comments. - a pagedown/up command key which moves to next class/def statement (top level) - split window capability - DnD text relocation/copying Things I don't want to see. - line numbers... will probably slow things down way too much. - Please use another icon for the tree browser leaf. The small snake isn't cutting it. ---------------------------------------------------------------------- - Customizable views (multi-window or multi-pane). (Markus Gritsch) - Being able to double click (maybe double right click) on a callable object in the editor which shows the source of the object, if possible. (Gerrit Holl) - Hooks into the guts, like in Emacs. (Mike Romberg) - Sharing the editor with a remote tutor. (Martijn Faassen) - Multiple views on the same file. (Tony J Ibbs) - Store breakpoints in a global (per-project) database (GvR); Dirk Heise adds: save some space-trimmed context and search around when reopening a file that might have been edited by someone else. - Capture menu events in extensions without changing the IDLE source. (Matthias Barmeier) - Use overlapping panels (a "notebook" in MFC terms I think) for info that doesn't need to be accessible simultaneously (e.g. HTML source and output). Use multi-pane windows for info that does need to be shown together (e.g. class browser and source). (Albert Brandl) - A project should invisibly track all symbols, for instant search, replace and cross-ref. Projects should be allowed to span multiple directories, hosts, etc. Project management files are placed in a directory you specify. A global mapping between project names and project directories should exist [not so sure --GvR]. (Tim Peters) - Merge attr-tips and auto-expand. (Mark Hammond, Tim Peters) - Python Shell should behave more like a "shell window" as users know it -- i.e. you can only edit the current command, and the cursor can't escape from the command area. (Albert Brandl) - Set X11 class to "idle/Idle", set icon and title to something beginning with "idle" -- for window manangers. (Randall Hopper) - Config files editable through a preferences dialog. (me) DONE - Config files still editable outside the preferences dialog. (Randall Hopper) DONE - When you're editing a command in PyShell, and there are only blank lines below the cursor, hitting Return should ignore or delete those blank lines rather than deciding you're not on the last line. (me) - Run command (F5 c.s.) should be more like Pythonwin's Run -- a dialog with options to give command line arguments, run the debugger, etc. (me) - Shouldn't be able to delete part of the prompt (or any text before it) in the PyShell. (Martijn Faassen) DONE - Emacs style auto-fill (also smart about comments and strings). (Jeremy Hylton) - Output of Run Script should go to a separate output window, not to the shell window. Output of separate runs should all go to the same window but clearly delimited. (David Scherer) REJECT FIRST, LATTER DONE - GUI form designer to kick VB's butt. (Robert Geiger) THAT'S NOT IDLE - Printing! Possibly via generation of PDF files which the user must then send to the printer separately. (Dinu Gherman) FIRST CUT # Grammar for 2to3. This grammar supports Python 2.x and 3.x. # Note: Changing the grammar specified in this file will most likely # require corresponding changes in the parser module # (../Modules/parsermodule.c). If you can't make the changes to # that module yourself, please co-ordinate the required changes # with someone who can; ask around on python-dev for help. Fred # Drake will probably be listening there. # NOTE WELL: You should also follow all the steps listed in PEP 306, # "How to Change Python's Grammar" # Commands for Kees Blom's railroad program #diagram:token NAME #diagram:token NUMBER #diagram:token STRING #diagram:token NEWLINE #diagram:token ENDMARKER #diagram:token INDENT #diagram:output\input python.bla #diagram:token DEDENT #diagram:output\textwidth 20.04cm\oddsidemargin 0.0cm\evensidemargin 0.0cm #diagram:rules # Start symbols for the grammar: # file_input is a module or sequence of commands read from an input file; # single_input is a single interactive statement; # eval_input is the input for the eval() and input() functions. # NB: compound_stmt in single_input is followed by extra NEWLINE! file_input: (NEWLINE | stmt)* ENDMARKER single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE eval_input: testlist NEWLINE* ENDMARKER decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE decorators: decorator+ decorated: decorators (classdef | funcdef | async_funcdef) async_funcdef: ASYNC funcdef funcdef: 'def' NAME parameters ['->' test] ':' suite parameters: '(' [typedargslist] ')' typedargslist: ((tfpdef ['=' test] ',')* ('*' [tname] (',' tname ['=' test])* [',' '**' tname] | '**' tname) | tfpdef ['=' test] (',' tfpdef ['=' test])* [',']) tname: NAME [':' test] tfpdef: tname | '(' tfplist ')' tfplist: tfpdef (',' tfpdef)* [','] varargslist: ((vfpdef ['=' test] ',')* ('*' [vname] (',' vname ['=' test])* [',' '**' vname] | '**' vname) | vfpdef ['=' test] (',' vfpdef ['=' test])* [',']) vname: NAME vfpdef: vname | '(' vfplist ')' vfplist: vfpdef (',' vfpdef)* [','] stmt: simple_stmt | compound_stmt simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE small_stmt: (expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt | import_stmt | global_stmt | exec_stmt | assert_stmt) expr_stmt: testlist_star_expr (augassign (yield_expr|testlist) | ('=' (yield_expr|testlist_star_expr))*) testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [','] augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' | '<<=' | '>>=' | '**=' | '//=') # For normal assignments, additional restrictions enforced by the interpreter print_stmt: 'print' ( [ test (',' test)* [','] ] | '>>' test [ (',' test)+ [','] ] ) del_stmt: 'del' exprlist pass_stmt: 'pass' flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt break_stmt: 'break' continue_stmt: 'continue' return_stmt: 'return' [testlist] yield_stmt: yield_expr raise_stmt: 'raise' [test ['from' test | ',' test [',' test]]] import_stmt: import_name | import_from import_name: 'import' dotted_as_names import_from: ('from' ('.'* dotted_name | '.'+) 'import' ('*' | '(' import_as_names ')' | import_as_names)) import_as_name: NAME ['as' NAME] dotted_as_name: dotted_name ['as' NAME] import_as_names: import_as_name (',' import_as_name)* [','] dotted_as_names: dotted_as_name (',' dotted_as_name)* dotted_name: NAME ('.' NAME)* global_stmt: ('global' | 'nonlocal') NAME (',' NAME)* exec_stmt: 'exec' expr ['in' test [',' test]] assert_stmt: 'assert' test [',' test] compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated | async_stmt async_stmt: ASYNC (funcdef | with_stmt | for_stmt) if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite] while_stmt: 'while' test ':' suite ['else' ':' suite] for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite] try_stmt: ('try' ':' suite ((except_clause ':' suite)+ ['else' ':' suite] ['finally' ':' suite] | 'finally' ':' suite)) with_stmt: 'with' with_item (',' with_item)* ':' suite with_item: test ['as' expr] with_var: 'as' expr # NB compile.c makes sure that the default except clause is last except_clause: 'except' [test [(',' | 'as') test]] suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT # Backward compatibility cruft to support: # [ x for x in lambda: True, lambda: False if x() ] # even while also allowing: # lambda x: 5 if x else 2 # (But not a mix of the two) testlist_safe: old_test [(',' old_test)+ [',']] old_test: or_test | old_lambdef old_lambdef: 'lambda' [varargslist] ':' old_test test: or_test ['if' or_test 'else' test] | lambdef or_test: and_test ('or' and_test)* and_test: not_test ('and' not_test)* not_test: 'not' not_test | comparison comparison: expr (comp_op expr)* comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not' star_expr: '*' expr expr: xor_expr ('|' xor_expr)* xor_expr: and_expr ('^' and_expr)* and_expr: shift_expr ('&' shift_expr)* shift_expr: arith_expr (('<<'|'>>') arith_expr)* arith_expr: term (('+'|'-') term)* term: factor (('*'|'@'|'/'|'%'|'//') factor)* factor: ('+'|'-'|'~') factor | power power: [AWAIT] atom trailer* ['**' factor] atom: ('(' [yield_expr|testlist_gexp] ')' | '[' [listmaker] ']' | '{' [dictsetmaker] '}' | '`' testlist1 '`' | NAME | NUMBER | STRING+ | '.' '.' '.') listmaker: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] ) testlist_gexp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] ) lambdef: 'lambda' [varargslist] ':' test trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME subscriptlist: subscript (',' subscript)* [','] subscript: test | [test] ':' [test] [sliceop] sliceop: ':' [test] exprlist: (expr|star_expr) (',' (expr|star_expr))* [','] testlist: test (',' test)* [','] dictsetmaker: ( (test ':' test (comp_for | (',' test ':' test)* [','])) | (test (comp_for | (',' test)* [','])) ) classdef: 'class' NAME ['(' [arglist] ')'] ':' suite arglist: (argument ',')* (argument [','] |'*' test (',' argument)* [',' '**' test] |'**' test) argument: test [comp_for] | test '=' test # Really [keyword '='] test comp_iter: comp_for | comp_if comp_for: 'for' exprlist 'in' testlist_safe [comp_iter] comp_if: 'if' old_test [comp_iter] testlist1: test (',' test)* # not used in grammar, but may appear in "node" passed from Parser to Compiler encoding_decl: NAME yield_expr: 'yield' [yield_arg] yield_arg: 'from' test | testlist # Copyright 2006 Google, Inc. All Rights Reserved. # Licensed to PSF under a Contributor Agreement. # A grammar to describe tree matching patterns. # Not shown here: # - 'TOKEN' stands for any token (leaf node) # - 'any' stands for any node (leaf or interior) # With 'any' we can still specify the sub-structure. # The start symbol is 'Matcher'. Matcher: Alternatives ENDMARKER Alternatives: Alternative ('|' Alternative)* Alternative: (Unit | NegatedUnit)+ Unit: [NAME '='] ( STRING [Repeater] | NAME [Details] [Repeater] | '(' Alternatives ')' [Repeater] | '[' Alternatives ']' ) NegatedUnit: 'not' (STRING | NAME [Details] | '(' Alternatives ')') Repeater: '*' | '+' | '{' NUMBER [',' NUMBER] '}' Details: '<' Alternatives '>' 如何在 Python 中使用既有的 C library?  在資訊科技快速發展的今天, 開發及測試軟體的速度是不容忽視的 課題. 為加快開發及測試的速度, 我們便常希望能利用一些已開發好的 library, 並有一個 fast prototyping 的 programming language 可 供使用. 目前有許許多多的 library 是以 C 寫成, 而 Python 是一個 fast prototyping 的 programming language. 故我們希望能將既有的 C library 拿到 Python 的環境中測試及整合. 其中最主要也是我們所 要討論的問題就是: pb Python ϥάJ C library? @bTާֳtoi, }oδճn骺t׬Oe D. [ֶ}oδժt, ڭ̫K`ƱQΤ@Ǥw}on library, æ@ fast prototyping programming language i Ѩϥ. ثe\\hh library OH C g, Python O@ fast prototyping programming language. Gڭ̧ƱNJ C library Python ҤդξX. 䤤̥Dn]Oڭ̩ nQתDNO: 𠄌Ě鵮罓洆 ÊÊ̄ê êê̄ E\sڍ fb 똠방각하 펲시콜라 ㉯㉯납!! 因九月패믤릔궈 ⓡⓖ훀¿¿¿ 긍뒙 ⓔ뎨 ㉯. . 亞영ⓔ능횹 . . . . 서울뤄 뎐학乙 家훀 ! ! !ㅠ.ㅠ 흐흐흐 ㄱㄱㄱ☆ㅠ_ㅠ 어릨 탸콰긐 뎌응 칑九들乙 ㉯드긐 설릌 家훀 . . . . 굴애쉌 ⓔ궈 ⓡ릘㉱긐 因仁川女中까즼 와쒀훀 ! ! 亞영ⓔ 家능궈 ☆上관 없능궈능 亞능뒈훀 글애듴 ⓡ려듀九 싀풔숴훀 어릨 因仁川女中싁⑨들앜!! ㉯㉯납♡ ⌒⌒* c氢 ݶ !! Вp ިR ѵ . . 䬿Ѵ . . . . ʫR ! ! !. ٤_  O h O j ʫR . . . . ֚f ѱ ސtƒO  ;R ! ! 䬿 ʫɱ ߾ ɱŴ 䬴ɵR ۾֊ ޷ ǴR  Ĩ!! ҡ* Python の開発は、1990 年ごろから開始されています。 開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。 このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBS 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。 このような背景から生まれた Python の言語設計は、「シンプル」で「習得が容易」という目標に重点が置かれています。 多くのスクリプト系言語ではユーザの目先の利便性を優先して色々な機能を言語要素として取り入れる場合が多いのですが、Python ではそういった小細工が追加されることはあまりありません。 言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加する、というのが Python のポリシーです。 ノか゚ ト゚ トキ喝塀 𡚴𪎌 麀齁𩛰 Python γȯϡ1990 ǯ鳫ϤƤޤ ȯԤ Guido van Rossum ϶ѤΥץߥ󥰸ABCפγȯ˻äƤޤABC ϼѾŪˤϤޤŬƤޤǤ ΤᡢGuido ϤŪʥץߥ󥰸γȯ򳫻Ϥѹ BBS Υǥȡ֥ƥ ѥפΥեǤ Guido ϤθPythonפ̾Ťޤ Τ褦طʤޤ줿 Python θ߷פϡ֥ץפǡֽưספȤɸ˽֤Ƥޤ ¿ΥץȷϸǤϥ桼ͥ褷ƿʵǽǤȤƼ礬¿ΤǤPython ǤϤäٹɲä뤳ȤϤޤꤢޤ 켫ΤεǽϺǾ¤˲ɬפʵǽϳĥ⥸塼Ȥɲä롢ȤΤ Python ΥݥꥷǤ Τ ȥ ԏ Python の開発は、1990 年ごろから開始されています。 開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。 このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBS 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。 このような背景から生まれた Python の言語設計は、「シンプル」で「習得が容易」という目標に重点が置かれています。 多くのスクリプト系言語ではユーザの目先の利便性を優先して色々な機能を言語要素として取り入れる場合が多いのですが、Python ではそういった小細工が追加されることはあまりありません。 言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加する、というのが Python のポリシーです。 Python γȯϡ1990 ǯ鳫ϤƤޤ ȯԤ Guido van Rossum ϶ѤΥץߥ󥰸ABCפγȯ˻äƤޤABC ϼѾŪˤϤޤŬƤޤǤ ΤᡢGuido ϤŪʥץߥ󥰸γȯ򳫻Ϥѹ BBS Υǥȡ֥ƥ ѥפΥեǤ Guido ϤθPythonפ̾Ťޤ Τ褦طʤޤ줿 Python θ߷פϡ֥ץפǡֽưספȤɸ˽֤Ƥޤ ¿ΥץȷϸǤϥ桼ͥ褷ƿʵǽǤȤƼ礬¿ΤǤPython ǤϤäٹɲä뤳ȤϤޤꤢޤ 켫ΤεǽϺǾ¤˲ɬפʵǽϳĥ⥸塼Ȥɲä롢ȤΤ Python ΥݥꥷǤ ◎ 파이썬(Python)은 배우기 쉽고, 강력한 프로그래밍 언어입니다. 파이썬은 효율적인 고수준 데이터 구조와 간단하지만 효율적인 객체지향프로그래밍을 지원합니다. 파이썬의 우아(優雅)한 문법과 동적 타이핑, 그리고 인터프리팅 환경은 파이썬을 스크립팅과 여러 분야에서와 대부분의 플랫폼에서의 빠른 애플리케이션 개발을 할 수 있는 이상적인 언어로 만들어줍니다. ☆첫가끝: 날아라 쓔쓔쓩~ 닁큼! 뜽금없이 전홥니다. 뷁. 그런거 읎다. ̽(Python) , α׷ Դϴ. ̽ ȿ ȿ üα׷ մϴ. ̽ () Ÿ, ׸ ȯ ̽ ũð о߿ κ ÷ ø̼ ִ ̻ ݴϴ. ù: ƶ ԤФԤԤФԾ~ ԤҤŭ! ԤѤݾ ԤȤϴ. ԤΤ. ׷ ԤѤ. Python(派森)语言是一种功能强大而完善的通用型计算机程序设计语言, 已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰 的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中 运行。这种语言简单而强大,适合各种人士学习使用。目前,基于这 种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。 如何在 Python 中使用既有的 C library?  在資訊科技快速發展的今天, 開發及測試軟體的速度是不容忽視的 課題. 為加快開發及測試的速度, 我們便常希望能利用一些已開發好的 library, 並有一個 fast prototyping 的 programming language 可 供使用. 目前有許許多多的 library 是以 C 寫成, 而 Python 是一個 fast prototyping 的 programming language. 故我們希望能將既有的 C library 拿到 Python 的環境中測試及整合. 其中最主要也是我們所 要討論的問題就是: 파이썬은 강력한 기능을 지닌 범용 컴퓨터 프로그래밍 언어다. PythonɭһֹǿƵͨͼԣ ѾʮķչʷȶԾзdzݶ ﷨ص㣬ʺɸָ߲񣬼еIJϵͳ СԼ򵥶ǿʺϸʿѧϰʹáĿǰ ԵؼڷٵķչûصԴdzࡣ Python ʹüе C library? YӍƼٰlչĽ, _lyԇܛwٶDzݺҕ n}. ӿ_lyԇٶ, ҂㳣ϣһЩ_lõ library, Kһ fast prototyping programming language ʹ. ĿǰSS library C , Python һ fast prototyping programming language. ҂ϣ܌е C library õ Python ĭhМyԇ. ҪҲ҂ ҪӑՓĆ}: 51332131 760463 858635 3195 0930 435755 5509899304 292599. Python(派森)语言是一种功能强大而完善的通用型计算机程序设计语言, 已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰 的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中 运行。这种语言简单而强大,适合各种人士学习使用。目前,基于这 种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。 PythonɭһֹǿƵͨͼԣ ѾʮķչʷȶԾзdzݶ ﷨ص㣬ʺɸָ߲񣬼еIJϵͳ СԼ򵥶ǿʺϸʿѧϰʹáĿǰ ԵؼڷٵķչûصԴdzࡣ Python(派森)语言是一种功能强大而完善的通用型计算机程序设计语言, 已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰 的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中 运行。这种语言简单而强大,适合各种人士学习使用。目前,基于这 种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。 如何在 Python 中使用既有的 C library?  在資訊科技快速發展的今天, 開發及測試軟體的速度是不容忽視的 課題. 為加快開發及測試的速度, 我們便常希望能利用一些已開發好的 library, 並有一個 fast prototyping 的 programming language 可 供使用. 目前有許許多多的 library 是以 C 寫成, 而 Python 是一個 fast prototyping 的 programming language. 故我們希望能將既有的 C library 拿到 Python 的環境中測試及整合. 其中最主要也是我們所 要討論的問題就是: PythonɭһֹǿƵͨͼԣ ѾʮķչʷȶԾзdzݶ ﷨ص㣬ʺɸָ߲񣬼еIJϵͳ СԼ򵥶ǿʺϸʿѧϰʹáĿǰ ԵؼڷٵķչûصԴdzࡣ Python ʹüе C library? YӍƼٰlչĽ, _lyԇܛwٶDzݺҕ n}. ӿ_lyԇٶ, ҂㳣ϣһЩ_lõ library, Kһ fast prototyping programming language ʹ. ĿǰSS library C , Python һ fast prototyping programming language. ҂ϣ܌е C library õ Python ĭhМyԇ. ҪҲ҂ ҪӑՓĆ}: This sentence is in ASCII. The next sentence is in GB.己所不欲,勿施於人。Bye. This sentence is in ASCII. The next sentence is in GB.~{<:Ky2;S{#,NpJ)l6HK!#~}Bye. Python の開発は、1990 年ごろから開始されています。 開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。 このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBS 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。 このような背景から生まれた Python の言語設計は、「シンプル」で「習得が容易」という目標に重点が置かれています。 多くのスクリプト系言語ではユーザの目先の利便性を優先して色々な機能を言語要素として取り入れる場合が多いのですが、Python ではそういった小細工が追加されることはあまりありません。 言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加する、というのが Python のポリシーです。 Python $B$N3+H/$O!"(B1990 $BG/$4$m$+$i3+;O$5$l$F$$$^$9!#(B $B3+H/e$NL\E*$K$O$"$^$jE,$7$F$$$^$;$s$G$7$?!#(B $B$3$N$?$a!"(BGuido $B$O$h$j$E$1$^$7$?!#(B $B$3$N$h$&$JGX7J$+$i@8$^$l$?(B Python $B$N8@8l@_7W$O!"!V%7%s%W%k!W$G!V=,F@$,MF0W!W$H$$$&L\I8$K=EE@$,CV$+$l$F$$$^$9!#(B $BB?$/$N%9%/%j%W%H7O8@8l$G$O%f!<%6$NL\@h$NMxJX@-$rM%@h$7$F?'!9$J5!G=$r8@8lMWAG$H$7$Fl9g$,B?$$$N$G$9$,!"(BPython $B$G$O$=$&$$$C$?>.:Y9)$,DI2C$5$l$k$3$H$O$"$^$j$"$j$^$;$s!#(B $B8@8l<+BN$N5!G=$O:G>.8B$K2!$5$(!"I,MW$J5!G=$O3HD%%b%8%e!<%k$H$7$FDI2C$9$k!"$H$$$&$N$,(B Python $B$N%]%j%7!<$G$9!#(B ◎ 파이썬(Python)은 배우기 쉽고, 강력한 프로그래밍 언어입니다. 파이썬은 효율적인 고수준 데이터 구조와 간단하지만 효율적인 객체지향프로그래밍을 지원합니다. 파이썬의 우아(優雅)한 문법과 동적 타이핑, 그리고 인터프리팅 환경은 파이썬을 스크립팅과 여러 분야에서와 대부분의 플랫폼에서의 빠른 애플리케이션 개발을 할 수 있는 이상적인 언어로 만들어줍니다. ☆첫가끝: 날아라 쓩~ 큼! 금없이 전니다. 그런거 다. $)C!] FD@L=c(Python)@: 9h?l1b =10m, 0-7BGQ GA7N1W7!9V >p>n@T4O4Y. FD@L=c@: H?@2@{@N 0mF(iPd:)GQ 9.9}0z 5?@{ E8@LGN, 1W8.0m @NEMGA8.FC H/0f@: FD@L=c@; =:E)83FC0z ?)7/ :P>_?!<-?M 4k:N:P@G GC7'F{?!<-@G :|8% >VGC8.DI@Lp>n7N 885i>nA]4O4Y. !YC90!3!: 3/>F6s >1~ E-! 1]>x@L @|4O4Y. 1W710E 4Y. 똠방각하 펲시콜라 ㉯㉯납!! 因九月패믤릔궈 ⓡⓖ훀¿¿¿ 긍뒙 ⓔ뎨 ㉯. . 亞영ⓔ능횹 . . . . 서울뤄 뎐학乙 家훀 ! ! !ㅠ.ㅠ 흐흐흐 ㄱㄱㄱ☆ㅠ_ㅠ 어릨 탸콰긐 뎌응 칑九들乙 ㉯드긐 설릌 家훀 . . . . 굴애쉌 ⓔ궈 ⓡ릘㉱긐 因仁川女中까즼 와쒀훀 ! ! 亞영ⓔ 家능궈 ☆上관 없능궈능 亞능뒈훀 글애듴 ⓡ려듀九 싀풔숴훀 어릨 因仁川女中싁⑨들앜!! ㉯㉯납♡ ⌒⌒* wba \ũa s!! gÚ zٯٯٯ w ѕ . . -> -- -- where: -- -- is a short name identifying the test, -- -- is the function to be tested (exp, cos, asinh, ...), -- -- is a pair of floats separated by whitespace -- representing real and imaginary parts of a complex number, and -- -- is the expected (ideal) output value, again -- represented as a pair of floats. -- -- is a list of the floating-point flags required by C99 -- -- The possible flags are: -- -- divide-by-zero : raised when a finite input gives a -- mathematically infinite result. -- -- overflow : raised when a finite input gives a finite result whose -- real or imaginary part is too large to fit in the usual range -- of an IEEE 754 double. -- -- invalid : raised for invalid inputs. -- -- ignore-real-sign : indicates that the sign of the real part of -- the result is unspecified; if the real part of the result is -- given as inf, then both -inf and inf should be accepted as -- correct. -- -- ignore-imag-sign : indicates that the sign of the imaginary part -- of the result is unspecified. -- -- Flags may appear in any order. -- -- Lines beginning with '--' (like this one) start a comment, and are -- ignored. Blank lines, or lines containing only whitespace, are also -- ignored. -- The majority of the values below were computed with the help of -- version 2.3 of the MPFR library for multiple-precision -- floating-point computations with correct rounding. All output -- values in this file are (modulo yet-to-be-discovered bugs) -- correctly rounded, provided that each input and output decimal -- floating-point value below is interpreted as a representation of -- the corresponding nearest IEEE 754 double-precision value. See the -- MPFR homepage at http://www.mpfr.org for more information about the -- MPFR project. -------------------------- -- acos: Inverse cosine -- -------------------------- -- zeros acos0000 acos 0.0 0.0 -> 1.5707963267948966 -0.0 acos0001 acos 0.0 -0.0 -> 1.5707963267948966 0.0 acos0002 acos -0.0 0.0 -> 1.5707963267948966 -0.0 acos0003 acos -0.0 -0.0 -> 1.5707963267948966 0.0 -- branch points: +/-1 acos0010 acos 1.0 0.0 -> 0.0 -0.0 acos0011 acos 1.0 -0.0 -> 0.0 0.0 acos0012 acos -1.0 0.0 -> 3.1415926535897931 -0.0 acos0013 acos -1.0 -0.0 -> 3.1415926535897931 0.0 -- values along both sides of real axis acos0020 acos -9.8813129168249309e-324 0.0 -> 1.5707963267948966 -0.0 acos0021 acos -9.8813129168249309e-324 -0.0 -> 1.5707963267948966 0.0 acos0022 acos -1e-305 0.0 -> 1.5707963267948966 -0.0 acos0023 acos -1e-305 -0.0 -> 1.5707963267948966 0.0 acos0024 acos -1e-150 0.0 -> 1.5707963267948966 -0.0 acos0025 acos -1e-150 -0.0 -> 1.5707963267948966 0.0 acos0026 acos -9.9999999999999998e-17 0.0 -> 1.5707963267948968 -0.0 acos0027 acos -9.9999999999999998e-17 -0.0 -> 1.5707963267948968 0.0 acos0028 acos -0.001 0.0 -> 1.5717963269615634 -0.0 acos0029 acos -0.001 -0.0 -> 1.5717963269615634 0.0 acos0030 acos -0.57899999999999996 0.0 -> 2.1882979816120667 -0.0 acos0031 acos -0.57899999999999996 -0.0 -> 2.1882979816120667 0.0 acos0032 acos -0.99999999999999989 0.0 -> 3.1415926386886319 -0.0 acos0033 acos -0.99999999999999989 -0.0 -> 3.1415926386886319 0.0 acos0034 acos -1.0000000000000002 0.0 -> 3.1415926535897931 -2.1073424255447014e-08 acos0035 acos -1.0000000000000002 -0.0 -> 3.1415926535897931 2.1073424255447014e-08 acos0036 acos -1.0009999999999999 0.0 -> 3.1415926535897931 -0.044717633608306849 acos0037 acos -1.0009999999999999 -0.0 -> 3.1415926535897931 0.044717633608306849 acos0038 acos -2.0 0.0 -> 3.1415926535897931 -1.3169578969248168 acos0039 acos -2.0 -0.0 -> 3.1415926535897931 1.3169578969248168 acos0040 acos -23.0 0.0 -> 3.1415926535897931 -3.8281684713331012 acos0041 acos -23.0 -0.0 -> 3.1415926535897931 3.8281684713331012 acos0042 acos -10000000000000000.0 0.0 -> 3.1415926535897931 -37.534508668464674 acos0043 acos -10000000000000000.0 -0.0 -> 3.1415926535897931 37.534508668464674 acos0044 acos -9.9999999999999998e+149 0.0 -> 3.1415926535897931 -346.08091112966679 acos0045 acos -9.9999999999999998e+149 -0.0 -> 3.1415926535897931 346.08091112966679 acos0046 acos -1.0000000000000001e+299 0.0 -> 3.1415926535897931 -689.16608998577965 acos0047 acos -1.0000000000000001e+299 -0.0 -> 3.1415926535897931 689.16608998577965 acos0048 acos 9.8813129168249309e-324 0.0 -> 1.5707963267948966 -0.0 acos0049 acos 9.8813129168249309e-324 -0.0 -> 1.5707963267948966 0.0 acos0050 acos 1e-305 0.0 -> 1.5707963267948966 -0.0 acos0051 acos 1e-305 -0.0 -> 1.5707963267948966 0.0 acos0052 acos 1e-150 0.0 -> 1.5707963267948966 -0.0 acos0053 acos 1e-150 -0.0 -> 1.5707963267948966 0.0 acos0054 acos 9.9999999999999998e-17 0.0 -> 1.5707963267948966 -0.0 acos0055 acos 9.9999999999999998e-17 -0.0 -> 1.5707963267948966 0.0 acos0056 acos 0.001 0.0 -> 1.56979632662823 -0.0 acos0057 acos 0.001 -0.0 -> 1.56979632662823 0.0 acos0058 acos 0.57899999999999996 0.0 -> 0.95329467197772655 -0.0 acos0059 acos 0.57899999999999996 -0.0 -> 0.95329467197772655 0.0 acos0060 acos 0.99999999999999989 0.0 -> 1.4901161193847656e-08 -0.0 acos0061 acos 0.99999999999999989 -0.0 -> 1.4901161193847656e-08 0.0 acos0062 acos 1.0000000000000002 0.0 -> 0.0 -2.1073424255447014e-08 acos0063 acos 1.0000000000000002 -0.0 -> 0.0 2.1073424255447014e-08 acos0064 acos 1.0009999999999999 0.0 -> 0.0 -0.044717633608306849 acos0065 acos 1.0009999999999999 -0.0 -> 0.0 0.044717633608306849 acos0066 acos 2.0 0.0 -> 0.0 -1.3169578969248168 acos0067 acos 2.0 -0.0 -> 0.0 1.3169578969248168 acos0068 acos 23.0 0.0 -> 0.0 -3.8281684713331012 acos0069 acos 23.0 -0.0 -> 0.0 3.8281684713331012 acos0070 acos 10000000000000000.0 0.0 -> 0.0 -37.534508668464674 acos0071 acos 10000000000000000.0 -0.0 -> 0.0 37.534508668464674 acos0072 acos 9.9999999999999998e+149 0.0 -> 0.0 -346.08091112966679 acos0073 acos 9.9999999999999998e+149 -0.0 -> 0.0 346.08091112966679 acos0074 acos 1.0000000000000001e+299 0.0 -> 0.0 -689.16608998577965 acos0075 acos 1.0000000000000001e+299 -0.0 -> 0.0 689.16608998577965 -- random inputs acos0100 acos -3.3307113324596682 -10.732007530863266 -> 1.8706085694482339 3.113986806554613 acos0101 acos -2863.952991743291 -2681013315.2571239 -> 1.5707973950301699 22.402607843274758 acos0102 acos -0.33072639793220088 -0.85055464658253055 -> 1.8219426895922601 0.79250166729311966 acos0103 acos -2.5722325842097802 -12.703940809821574 -> 1.7699942413107408 3.2565170156527325 acos0104 acos -42.495233785459583 -0.54039320751337161 -> 3.1288732573153304 4.4424815519735601 acos0105 acos -1.1363818625856401 9641.1325498630376 -> 1.5709141948820049 -9.8669410553254284 acos0106 acos -2.4398426824157866e-11 0.33002051890266165 -> 1.570796326818066 -0.32430578041578667 acos0107 acos -1.3521340428186552 2.9369737912076772 -> 1.9849059192339338 -1.8822893674117942 acos0108 acos -1.827364706477915 1.0355459232147557 -> 2.5732246307960032 -1.4090688267854969 acos0109 acos -0.25978373706403546 10.09712669185833 -> 1.5963940386378306 -3.0081673050196063 acos0110 acos 0.33561778471072551 -4587350.6823999118 -> 1.5707962536333251 16.031960402579539 acos0111 acos 0.49133444610998445 -0.8071422362990015 -> 1.1908761712801788 0.78573345813187867 acos0112 acos 0.42196734507823974 -2.4812965431745115 -> 1.414091186100692 1.651707260988172 acos0113 acos 2.961426210100655 -219.03295695248664 -> 1.5572768319822778 6.0824659885827304 acos0114 acos 2.886209063652641 -20.38011207220606 -> 1.4302765252297889 3.718201853147642 acos0115 acos 0.4180568075276509 1.4833433990823484 -> 1.3393834558303042 -1.2079847758301576 acos0116 acos 52.376111405924718 0.013930429001941001 -> 0.00026601761804024188 -4.6515066691204714 acos0117 acos 41637948387.625969 1.563418292894041 -> 3.7547918507883548e-11 -25.145424989809381 acos0118 acos 0.061226659122249526 0.8447234394615154 -> 1.5240280306367315 -0.76791798971140812 acos0119 acos 2.4480466420442959e+26 0.18002339201384662 -> 7.353756620564798e-28 -61.455650015996376 -- values near infinity acos0200 acos 1.6206860518683021e+308 1.0308426226285283e+308 -> 0.56650826093826223 -710.54206874241561 acos0201 acos 1.2067735875070062e+308 -1.3429173724390276e+308 -> 0.83874369390864889 710.48017794027498 acos0202 acos -7.4130145132549047e+307 1.1759130543927645e+308 -> 2.1332729346478536 -710.21871115698752 acos0203 acos -8.6329426442257249e+307 -1.2316282952184133e+308 -> 2.1821511032444838 710.29752145697148 acos0204 acos 0.0 1.4289713855849746e+308 -> 1.5707963267948966 -710.24631069738996 acos0205 acos -0.0 1.3153524545987432e+308 -> 1.5707963267948966 -710.1634604787539 acos0206 acos 0.0 -9.6229037669269321e+307 -> 1.5707963267948966 709.85091679573691 acos0207 acos -0.0 -4.9783616421107088e+307 -> 1.5707963267948966 709.19187157911233 acos0208 acos 1.3937541925739389e+308 0.0 -> 0.0 -710.22135678707264 acos0209 acos 9.1362388967371536e+307 -0.0 -> 0.0 709.79901953124613 acos0210 acos -1.3457361220697436e+308 0.0 -> 3.1415926535897931 -710.18629698871848 acos0211 acos -5.4699090056144284e+307 -0.0 -> 3.1415926535897931 709.28603271085649 acos0212 acos 1.5880716932358901e+308 5.5638401252339929 -> 3.503519487773873e-308 -710.35187633140583 acos0213 acos 1.2497211663463164e+308 -3.0456477717911024 -> 2.4370618453197486e-308 710.11227628223412 acos0214 acos -9.9016224006029528e+307 4.9570427340789056 -> 3.1415926535897931 -709.87946935229468 acos0215 acos -1.5854071066874139e+308 -4.4233577741497783 -> 3.1415926535897931 710.35019704672004 acos0216 acos 9.3674623083647628 1.5209559051877979e+308 -> 1.5707963267948966 -710.30869484491086 acos0217 acos 8.1773832021784383 -6.6093445795000056e+307 -> 1.5707963267948966 709.4752552227792 acos0218 acos -3.1845935000665104 1.5768856396650893e+308 -> 1.5707963267948966 -710.34480761042687 acos0219 acos -1.0577303880953903 -6.4574626815735613e+307 -> 1.5707963267948966 709.45200719662046 -- values near 0 acos0220 acos 1.8566986970714045e-320 3.1867234156760402e-321 -> 1.5707963267948966 -3.1867234156760402e-321 acos0221 acos 7.9050503334599447e-323 -8.8931816251424378e-323 -> 1.5707963267948966 8.8931816251424378e-323 acos0222 acos -4.4465908125712189e-323 2.4654065097222727e-311 -> 1.5707963267948966 -2.4654065097222727e-311 acos0223 acos -6.1016916408192619e-311 -2.4703282292062327e-323 -> 1.5707963267948966 2.4703282292062327e-323 acos0224 acos 0.0 3.4305783621842729e-311 -> 1.5707963267948966 -3.4305783621842729e-311 acos0225 acos -0.0 1.6117409498633145e-319 -> 1.5707963267948966 -1.6117409498633145e-319 acos0226 acos 0.0 -4.9900630229965901e-322 -> 1.5707963267948966 4.9900630229965901e-322 acos0227 acos -0.0 -4.4889279210592818e-311 -> 1.5707963267948966 4.4889279210592818e-311 acos0228 acos 5.3297678681477214e-312 0.0 -> 1.5707963267948966 -0.0 acos0229 acos 6.2073425897211614e-313 -0.0 -> 1.5707963267948966 0.0 acos0230 acos -4.9406564584124654e-324 0.0 -> 1.5707963267948966 -0.0 acos0231 acos -1.7107517052899003e-318 -0.0 -> 1.5707963267948966 0.0 -- special values acos1000 acos 0.0 0.0 -> 1.5707963267948966 -0.0 acos1001 acos 0.0 -0.0 -> 1.5707963267948966 0.0 acos1002 acos -0.0 0.0 -> 1.5707963267948966 -0.0 acos1003 acos -0.0 -0.0 -> 1.5707963267948966 0.0 acos1004 acos 0.0 nan -> 1.5707963267948966 nan acos1005 acos -0.0 nan -> 1.5707963267948966 nan acos1006 acos -2.3 inf -> 1.5707963267948966 -inf acos1007 acos -0.0 inf -> 1.5707963267948966 -inf acos1008 acos 0.0 inf -> 1.5707963267948966 -inf acos1009 acos 2.3 inf -> 1.5707963267948966 -inf acos1010 acos -2.3 nan -> nan nan acos1011 acos 2.3 nan -> nan nan acos1012 acos -inf 2.3 -> 3.1415926535897931 -inf acos1013 acos -inf 0.0 -> 3.1415926535897931 -inf acos1014 acos inf 2.3 -> 0.0 -inf acos1015 acos inf 0.0 -> 0.0 -inf acos1016 acos -inf inf -> 2.3561944901923448 -inf acos1017 acos inf inf -> 0.78539816339744828 -inf acos1018 acos inf nan -> nan inf ignore-imag-sign acos1019 acos -inf nan -> nan inf ignore-imag-sign acos1020 acos nan 0.0 -> nan nan acos1021 acos nan 2.3 -> nan nan acos1022 acos nan inf -> nan -inf acos1023 acos nan nan -> nan nan acos1024 acos -2.3 -inf -> 1.5707963267948966 inf acos1025 acos -0.0 -inf -> 1.5707963267948966 inf acos1026 acos 0.0 -inf -> 1.5707963267948966 inf acos1027 acos 2.3 -inf -> 1.5707963267948966 inf acos1028 acos -inf -2.3 -> 3.1415926535897931 inf acos1029 acos -inf -0.0 -> 3.1415926535897931 inf acos1030 acos inf -2.3 -> 0.0 inf acos1031 acos inf -0.0 -> 0.0 inf acos1032 acos -inf -inf -> 2.3561944901923448 inf acos1033 acos inf -inf -> 0.78539816339744828 inf acos1034 acos nan -0.0 -> nan nan acos1035 acos nan -2.3 -> nan nan acos1036 acos nan -inf -> nan inf -------------------------------------- -- acosh: Inverse hyperbolic cosine -- -------------------------------------- -- zeros acosh0000 acosh 0.0 0.0 -> 0.0 1.5707963267948966 acosh0001 acosh 0.0 -0.0 -> 0.0 -1.5707963267948966 acosh0002 acosh -0.0 0.0 -> 0.0 1.5707963267948966 acosh0003 acosh -0.0 -0.0 -> 0.0 -1.5707963267948966 -- branch points: +/-1 acosh0010 acosh 1.0 0.0 -> 0.0 0.0 acosh0011 acosh 1.0 -0.0 -> 0.0 -0.0 acosh0012 acosh -1.0 0.0 -> 0.0 3.1415926535897931 acosh0013 acosh -1.0 -0.0 -> 0.0 -3.1415926535897931 -- values along both sides of real axis acosh0020 acosh -9.8813129168249309e-324 0.0 -> 0.0 1.5707963267948966 acosh0021 acosh -9.8813129168249309e-324 -0.0 -> 0.0 -1.5707963267948966 acosh0022 acosh -1e-305 0.0 -> 0.0 1.5707963267948966 acosh0023 acosh -1e-305 -0.0 -> 0.0 -1.5707963267948966 acosh0024 acosh -1e-150 0.0 -> 0.0 1.5707963267948966 acosh0025 acosh -1e-150 -0.0 -> 0.0 -1.5707963267948966 acosh0026 acosh -9.9999999999999998e-17 0.0 -> 0.0 1.5707963267948968 acosh0027 acosh -9.9999999999999998e-17 -0.0 -> 0.0 -1.5707963267948968 acosh0028 acosh -0.001 0.0 -> 0.0 1.5717963269615634 acosh0029 acosh -0.001 -0.0 -> 0.0 -1.5717963269615634 acosh0030 acosh -0.57899999999999996 0.0 -> 0.0 2.1882979816120667 acosh0031 acosh -0.57899999999999996 -0.0 -> 0.0 -2.1882979816120667 acosh0032 acosh -0.99999999999999989 0.0 -> 0.0 3.1415926386886319 acosh0033 acosh -0.99999999999999989 -0.0 -> 0.0 -3.1415926386886319 acosh0034 acosh -1.0000000000000002 0.0 -> 2.1073424255447014e-08 3.1415926535897931 acosh0035 acosh -1.0000000000000002 -0.0 -> 2.1073424255447014e-08 -3.1415926535897931 acosh0036 acosh -1.0009999999999999 0.0 -> 0.044717633608306849 3.1415926535897931 acosh0037 acosh -1.0009999999999999 -0.0 -> 0.044717633608306849 -3.1415926535897931 acosh0038 acosh -2.0 0.0 -> 1.3169578969248168 3.1415926535897931 acosh0039 acosh -2.0 -0.0 -> 1.3169578969248168 -3.1415926535897931 acosh0040 acosh -23.0 0.0 -> 3.8281684713331012 3.1415926535897931 acosh0041 acosh -23.0 -0.0 -> 3.8281684713331012 -3.1415926535897931 acosh0042 acosh -10000000000000000.0 0.0 -> 37.534508668464674 3.1415926535897931 acosh0043 acosh -10000000000000000.0 -0.0 -> 37.534508668464674 -3.1415926535897931 acosh0044 acosh -9.9999999999999998e+149 0.0 -> 346.08091112966679 3.1415926535897931 acosh0045 acosh -9.9999999999999998e+149 -0.0 -> 346.08091112966679 -3.1415926535897931 acosh0046 acosh -1.0000000000000001e+299 0.0 -> 689.16608998577965 3.1415926535897931 acosh0047 acosh -1.0000000000000001e+299 -0.0 -> 689.16608998577965 -3.1415926535897931 acosh0048 acosh 9.8813129168249309e-324 0.0 -> 0.0 1.5707963267948966 acosh0049 acosh 9.8813129168249309e-324 -0.0 -> 0.0 -1.5707963267948966 acosh0050 acosh 1e-305 0.0 -> 0.0 1.5707963267948966 acosh0051 acosh 1e-305 -0.0 -> 0.0 -1.5707963267948966 acosh0052 acosh 1e-150 0.0 -> 0.0 1.5707963267948966 acosh0053 acosh 1e-150 -0.0 -> 0.0 -1.5707963267948966 acosh0054 acosh 9.9999999999999998e-17 0.0 -> 0.0 1.5707963267948966 acosh0055 acosh 9.9999999999999998e-17 -0.0 -> 0.0 -1.5707963267948966 acosh0056 acosh 0.001 0.0 -> 0.0 1.56979632662823 acosh0057 acosh 0.001 -0.0 -> 0.0 -1.56979632662823 acosh0058 acosh 0.57899999999999996 0.0 -> 0.0 0.95329467197772655 acosh0059 acosh 0.57899999999999996 -0.0 -> 0.0 -0.95329467197772655 acosh0060 acosh 0.99999999999999989 0.0 -> 0.0 1.4901161193847656e-08 acosh0061 acosh 0.99999999999999989 -0.0 -> 0.0 -1.4901161193847656e-08 acosh0062 acosh 1.0000000000000002 0.0 -> 2.1073424255447014e-08 0.0 acosh0063 acosh 1.0000000000000002 -0.0 -> 2.1073424255447014e-08 -0.0 acosh0064 acosh 1.0009999999999999 0.0 -> 0.044717633608306849 0.0 acosh0065 acosh 1.0009999999999999 -0.0 -> 0.044717633608306849 -0.0 acosh0066 acosh 2.0 0.0 -> 1.3169578969248168 0.0 acosh0067 acosh 2.0 -0.0 -> 1.3169578969248168 -0.0 acosh0068 acosh 23.0 0.0 -> 3.8281684713331012 0.0 acosh0069 acosh 23.0 -0.0 -> 3.8281684713331012 -0.0 acosh0070 acosh 10000000000000000.0 0.0 -> 37.534508668464674 0.0 acosh0071 acosh 10000000000000000.0 -0.0 -> 37.534508668464674 -0.0 acosh0072 acosh 9.9999999999999998e+149 0.0 -> 346.08091112966679 0.0 acosh0073 acosh 9.9999999999999998e+149 -0.0 -> 346.08091112966679 -0.0 acosh0074 acosh 1.0000000000000001e+299 0.0 -> 689.16608998577965 0.0 acosh0075 acosh 1.0000000000000001e+299 -0.0 -> 689.16608998577965 -0.0 -- random inputs acosh0100 acosh -1.4328589581250843 -1.8370347775558309 -> 1.5526962646549587 -2.190250168435786 acosh0101 acosh -0.31075819156220957 -1.0772555786839297 -> 0.95139168286193709 -1.7812228089636479 acosh0102 acosh -1.9044776578070453 -20.485370158932124 -> 3.7177411088932359 -1.6633888745861227 acosh0103 acosh -0.075642506000858742 -21965976320.873051 -> 24.505907742881991 -1.5707963267983402 acosh0104 acosh -1.6162271181056307 -3.0369343458696099 -> 1.9407057262861227 -2.0429549461750209 acosh0105 acosh -0.3103780280298063 0.00018054880018078987 -> 0.00018992877058761416 1.886386995096728 acosh0106 acosh -9159468751.5897655 5.8014747664273649 -> 23.631201197959193 3.1415926529564078 acosh0107 acosh -0.037739157550933884 0.21841357493510705 -> 0.21685844960602488 1.6076735133449402 acosh0108 acosh -8225991.0508394297 0.28318543008913644 -> 16.615956520420287 3.1415926191641019 acosh0109 acosh -35.620070502302639 0.31303237005015 -> 4.2658980006943965 3.1328013255541873 acosh0110 acosh 96.729939906820917 -0.029345228372365334 -> 5.2650434775863548 -0.00030338895866972843 acosh0111 acosh 0.59656024007966491 -2.0412294654163978 -> 1.4923002024287835 -1.312568421900338 acosh0112 acosh 109.29384112677828 -0.00015454863061533812 -> 5.3871662961545477 -1.4141245154061214e-06 acosh0113 acosh 8.6705651969361597 -3.6723631649787465 -> 2.9336180958363545 -0.40267362031872861 acosh0114 acosh 1.8101646445052686 -0.012345132721855478 -> 1.1997148566285769 -0.0081813912760150265 acosh0115 acosh 52.56897195025288 0.001113916065985443 -> 4.6551827622264135 2.1193445872040307e-05 acosh0116 acosh 0.28336786164214739 355643992457.40485 -> 27.290343226816528 1.5707963267940999 acosh0117 acosh 0.73876621291911437 2.8828594541104322e-20 -> 4.2774820978159067e-20 0.73955845836827927 acosh0118 acosh 0.025865471781718878 37125746064318.492 -> 31.938478989418012 1.5707963267948959 acosh0119 acosh 2.2047353511780132 0.074712248143489271 -> 1.4286403248698021 0.037997904971626598 -- values near infinity acosh0200 acosh 8.1548592876467785e+307 9.0943779335951128e+307 -> 710.08944620800605 0.83981165425478954 acosh0201 acosh 1.4237229680972531e+308 -1.0336966617874858e+308 -> 710.4543331094759 -0.6279972876348755 acosh0202 acosh -1.5014526899738939e+308 1.5670700378448792e+308 -> 710.66420706795464 2.3348137299106697 acosh0203 acosh -1.0939040375213928e+308 -1.0416960351127978e+308 -> 710.30182863115886 -2.380636147787027 acosh0204 acosh 0.0 1.476062433559588e+308 -> 710.27873384716929 1.5707963267948966 acosh0205 acosh -0.0 6.2077210326221094e+307 -> 709.41256457484769 1.5707963267948966 acosh0206 acosh 0.0 -1.5621899909968308e+308 -> 710.33544449990734 -1.5707963267948966 acosh0207 acosh -0.0 -8.3556624833839122e+307 -> 709.70971018048317 -1.5707963267948966 acosh0208 acosh 1.3067079752499342e+308 0.0 -> 710.15686680107228 0.0 acosh0209 acosh 1.5653640340214026e+308 -0.0 -> 710.33747422926706 -0.0 acosh0210 acosh -6.9011375992290636e+307 0.0 -> 709.51845699719922 3.1415926535897931 acosh0211 acosh -9.9539576809926973e+307 -0.0 -> 709.88474095870185 -3.1415926535897931 acosh0212 acosh 7.6449598518914925e+307 9.5706540768268358 -> 709.62081731754802 1.2518906916769345e-307 acosh0213 acosh 5.4325410972602197e+307 -7.8064807816522706 -> 709.279177727925 -1.4369851312471974e-307 acosh0214 acosh -1.1523626112360465e+308 7.0617510038869336 -> 710.03117010216909 3.1415926535897931 acosh0215 acosh -1.1685027786862599e+308 -5.1568558357925625 -> 710.04507907571417 -3.1415926535897931 acosh0216 acosh 3.0236370339788721 1.7503248720096417e+308 -> 710.44915723458064 1.5707963267948966 acosh0217 acosh 6.6108007926031149 -9.1469968225806149e+307 -> 709.80019633903328 -1.5707963267948966 acosh0218 acosh -5.1096262905623959 6.4484926785412395e+307 -> 709.45061713997973 1.5707963267948966 acosh0219 acosh -2.8080920608735846 -1.7716118836519368e+308 -> 710.46124562363445 -1.5707963267948966 -- values near 0 acosh0220 acosh 4.5560530326699304e-317 7.3048989121436657e-318 -> 7.3048989121436657e-318 1.5707963267948966 acosh0221 acosh 4.8754274133585331e-314 -9.8469794897684199e-315 -> 9.8469794897684199e-315 -1.5707963267948966 acosh0222 acosh -4.6748876009960097e-312 9.7900342887557606e-318 -> 9.7900342887557606e-318 1.5707963267948966 acosh0223 acosh -4.3136871538399236e-320 -4.9406564584124654e-323 -> 4.9406564584124654e-323 -1.5707963267948966 acosh0224 acosh 0.0 4.3431013866496774e-314 -> 4.3431013866496774e-314 1.5707963267948966 acosh0225 acosh -0.0 6.0147334335829184e-317 -> 6.0147334335829184e-317 1.5707963267948966 acosh0226 acosh 0.0 -1.2880291387081297e-320 -> 1.2880291387081297e-320 -1.5707963267948966 acosh0227 acosh -0.0 -1.4401563976534621e-317 -> 1.4401563976534621e-317 -1.5707963267948966 acosh0228 acosh 1.3689680570863091e-313 0.0 -> 0.0 1.5707963267948966 acosh0229 acosh 1.5304346893494371e-312 -0.0 -> 0.0 -1.5707963267948966 acosh0230 acosh -3.7450175954766488e-320 0.0 -> 0.0 1.5707963267948966 acosh0231 acosh -8.4250563080885801e-311 -0.0 -> 0.0 -1.5707963267948966 -- special values acosh1000 acosh 0.0 0.0 -> 0.0 1.5707963267948966 acosh1001 acosh -0.0 0.0 -> 0.0 1.5707963267948966 acosh1002 acosh 0.0 inf -> inf 1.5707963267948966 acosh1003 acosh 2.3 inf -> inf 1.5707963267948966 acosh1004 acosh -0.0 inf -> inf 1.5707963267948966 acosh1005 acosh -2.3 inf -> inf 1.5707963267948966 acosh1006 acosh 0.0 nan -> nan nan acosh1007 acosh 2.3 nan -> nan nan acosh1008 acosh -0.0 nan -> nan nan acosh1009 acosh -2.3 nan -> nan nan acosh1010 acosh -inf 0.0 -> inf 3.1415926535897931 acosh1011 acosh -inf 2.3 -> inf 3.1415926535897931 acosh1012 acosh inf 0.0 -> inf 0.0 acosh1013 acosh inf 2.3 -> inf 0.0 acosh1014 acosh -inf inf -> inf 2.3561944901923448 acosh1015 acosh inf inf -> inf 0.78539816339744828 acosh1016 acosh inf nan -> inf nan acosh1017 acosh -inf nan -> inf nan acosh1018 acosh nan 0.0 -> nan nan acosh1019 acosh nan 2.3 -> nan nan acosh1020 acosh nan inf -> inf nan acosh1021 acosh nan nan -> nan nan acosh1022 acosh 0.0 -0.0 -> 0.0 -1.5707963267948966 acosh1023 acosh -0.0 -0.0 -> 0.0 -1.5707963267948966 acosh1024 acosh 0.0 -inf -> inf -1.5707963267948966 acosh1025 acosh 2.3 -inf -> inf -1.5707963267948966 acosh1026 acosh -0.0 -inf -> inf -1.5707963267948966 acosh1027 acosh -2.3 -inf -> inf -1.5707963267948966 acosh1028 acosh -inf -0.0 -> inf -3.1415926535897931 acosh1029 acosh -inf -2.3 -> inf -3.1415926535897931 acosh1030 acosh inf -0.0 -> inf -0.0 acosh1031 acosh inf -2.3 -> inf -0.0 acosh1032 acosh -inf -inf -> inf -2.3561944901923448 acosh1033 acosh inf -inf -> inf -0.78539816339744828 acosh1034 acosh nan -0.0 -> nan nan acosh1035 acosh nan -2.3 -> nan nan acosh1036 acosh nan -inf -> inf nan ------------------------ -- asin: Inverse sine -- ------------------------ -- zeros asin0000 asin 0.0 0.0 -> 0.0 0.0 asin0001 asin 0.0 -0.0 -> 0.0 -0.0 asin0002 asin -0.0 0.0 -> -0.0 0.0 asin0003 asin -0.0 -0.0 -> -0.0 -0.0 -- branch points: +/-1 asin0010 asin 1.0 0.0 -> 1.5707963267948966 0.0 asin0011 asin 1.0 -0.0 -> 1.5707963267948966 -0.0 asin0012 asin -1.0 0.0 -> -1.5707963267948966 0.0 asin0013 asin -1.0 -0.0 -> -1.5707963267948966 -0.0 -- values along both sides of real axis asin0020 asin -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0 asin0021 asin -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 asin0022 asin -1e-305 0.0 -> -1e-305 0.0 asin0023 asin -1e-305 -0.0 -> -1e-305 -0.0 asin0024 asin -1e-150 0.0 -> -1e-150 0.0 asin0025 asin -1e-150 -0.0 -> -1e-150 -0.0 asin0026 asin -9.9999999999999998e-17 0.0 -> -9.9999999999999998e-17 0.0 asin0027 asin -9.9999999999999998e-17 -0.0 -> -9.9999999999999998e-17 -0.0 asin0028 asin -0.001 0.0 -> -0.0010000001666667416 0.0 asin0029 asin -0.001 -0.0 -> -0.0010000001666667416 -0.0 asin0030 asin -0.57899999999999996 0.0 -> -0.61750165481717001 0.0 asin0031 asin -0.57899999999999996 -0.0 -> -0.61750165481717001 -0.0 asin0032 asin -0.99999999999999989 0.0 -> -1.5707963118937354 0.0 asin0033 asin -0.99999999999999989 -0.0 -> -1.5707963118937354 -0.0 asin0034 asin -1.0000000000000002 0.0 -> -1.5707963267948966 2.1073424255447014e-08 asin0035 asin -1.0000000000000002 -0.0 -> -1.5707963267948966 -2.1073424255447014e-08 asin0036 asin -1.0009999999999999 0.0 -> -1.5707963267948966 0.044717633608306849 asin0037 asin -1.0009999999999999 -0.0 -> -1.5707963267948966 -0.044717633608306849 asin0038 asin -2.0 0.0 -> -1.5707963267948966 1.3169578969248168 asin0039 asin -2.0 -0.0 -> -1.5707963267948966 -1.3169578969248168 asin0040 asin -23.0 0.0 -> -1.5707963267948966 3.8281684713331012 asin0041 asin -23.0 -0.0 -> -1.5707963267948966 -3.8281684713331012 asin0042 asin -10000000000000000.0 0.0 -> -1.5707963267948966 37.534508668464674 asin0043 asin -10000000000000000.0 -0.0 -> -1.5707963267948966 -37.534508668464674 asin0044 asin -9.9999999999999998e+149 0.0 -> -1.5707963267948966 346.08091112966679 asin0045 asin -9.9999999999999998e+149 -0.0 -> -1.5707963267948966 -346.08091112966679 asin0046 asin -1.0000000000000001e+299 0.0 -> -1.5707963267948966 689.16608998577965 asin0047 asin -1.0000000000000001e+299 -0.0 -> -1.5707963267948966 -689.16608998577965 asin0048 asin 9.8813129168249309e-324 0.0 -> 9.8813129168249309e-324 0.0 asin0049 asin 9.8813129168249309e-324 -0.0 -> 9.8813129168249309e-324 -0.0 asin0050 asin 1e-305 0.0 -> 1e-305 0.0 asin0051 asin 1e-305 -0.0 -> 1e-305 -0.0 asin0052 asin 1e-150 0.0 -> 1e-150 0.0 asin0053 asin 1e-150 -0.0 -> 1e-150 -0.0 asin0054 asin 9.9999999999999998e-17 0.0 -> 9.9999999999999998e-17 0.0 asin0055 asin 9.9999999999999998e-17 -0.0 -> 9.9999999999999998e-17 -0.0 asin0056 asin 0.001 0.0 -> 0.0010000001666667416 0.0 asin0057 asin 0.001 -0.0 -> 0.0010000001666667416 -0.0 asin0058 asin 0.57899999999999996 0.0 -> 0.61750165481717001 0.0 asin0059 asin 0.57899999999999996 -0.0 -> 0.61750165481717001 -0.0 asin0060 asin 0.99999999999999989 0.0 -> 1.5707963118937354 0.0 asin0061 asin 0.99999999999999989 -0.0 -> 1.5707963118937354 -0.0 asin0062 asin 1.0000000000000002 0.0 -> 1.5707963267948966 2.1073424255447014e-08 asin0063 asin 1.0000000000000002 -0.0 -> 1.5707963267948966 -2.1073424255447014e-08 asin0064 asin 1.0009999999999999 0.0 -> 1.5707963267948966 0.044717633608306849 asin0065 asin 1.0009999999999999 -0.0 -> 1.5707963267948966 -0.044717633608306849 asin0066 asin 2.0 0.0 -> 1.5707963267948966 1.3169578969248168 asin0067 asin 2.0 -0.0 -> 1.5707963267948966 -1.3169578969248168 asin0068 asin 23.0 0.0 -> 1.5707963267948966 3.8281684713331012 asin0069 asin 23.0 -0.0 -> 1.5707963267948966 -3.8281684713331012 asin0070 asin 10000000000000000.0 0.0 -> 1.5707963267948966 37.534508668464674 asin0071 asin 10000000000000000.0 -0.0 -> 1.5707963267948966 -37.534508668464674 asin0072 asin 9.9999999999999998e+149 0.0 -> 1.5707963267948966 346.08091112966679 asin0073 asin 9.9999999999999998e+149 -0.0 -> 1.5707963267948966 -346.08091112966679 asin0074 asin 1.0000000000000001e+299 0.0 -> 1.5707963267948966 689.16608998577965 asin0075 asin 1.0000000000000001e+299 -0.0 -> 1.5707963267948966 -689.16608998577965 -- random inputs asin0100 asin -1.5979555835086083 -0.15003009814595247 -> -1.4515369557405788 -1.0544476399790823 asin0101 asin -0.57488225895317679 -9.6080397838952743e-13 -> -0.61246024460412851 -1.174238005400403e-12 asin0102 asin -3.6508087930516249 -0.36027527093220152 -> -1.4685890605305874 -1.9742273007152038 asin0103 asin -1.5238659792326819 -1.1360813516996364 -> -0.86080051691147275 -1.3223742205689195 asin0104 asin -1592.0639045555306 -0.72362427935018236 -> -1.5703418071175179 -8.0659336918729228 asin0105 asin -0.19835471371312019 4.2131508416697709 -> -0.045777831019935149 2.1461732751933171 asin0106 asin -1.918471054430213 0.40603305079779234 -> -1.3301396585791556 1.30263642314981 asin0107 asin -254495.01623373642 0.71084414434470822 -> -1.5707935336394359 13.140183712762321 asin0108 asin -0.31315882715691157 3.9647994288429866 -> -0.076450403840916004 2.0889762138713457 asin0109 asin -0.90017064284720816 1.2530659485907105 -> -0.53466509741943447 1.1702811557577 asin0110 asin 2.1615181696571075 -0.14058647488229523 -> 1.4976166323896871 -1.4085811039334604 asin0111 asin 1.2104749210707795 -0.85732484485298999 -> 0.83913071588343924 -1.0681719250525901 asin0112 asin 1.7059733185128891 -0.84032966373156581 -> 1.0510900815816229 -1.2967979791361652 asin0113 asin 9.9137085017290687 -1.4608383970250893 -> 1.4237704820128891 -2.995414677560686 asin0114 asin 117.12344751041495 -5453908091.5334015 -> 2.1475141411392012e-08 -23.112745450217066 asin0115 asin 0.081041187798029227 0.067054349860173196 -> 0.080946786856771813 0.067223991060639698 asin0116 asin 46.635472322049949 2.3835190718056678 -> 1.5197194940010779 4.5366989600972083 asin0117 asin 3907.0687961127105 19.144021886390181 -> 1.5658965233083235 8.9637018715924217 asin0118 asin 1.0889312322308273 509.01577883554768 -> 0.0021392803817829316 6.9256294494524706 asin0119 asin 0.10851518277509224 1.5612510908217476 -> 0.058491014243902621 1.2297075725621327 -- values near infinity asin0200 asin 1.5230241998821499e+308 5.5707228994084525e+307 -> 1.2201446370892068 710.37283486535966 asin0201 asin 8.1334317698672204e+307 -9.2249425197872451e+307 -> 0.72259991284020042 -710.0962453049026 asin0202 asin -9.9138506659241768e+307 6.701544526434995e+307 -> -0.97637511742194594 710.06887486671371 asin0203 asin -1.4141298868173842e+308 -5.401505134514191e+307 -> -1.2059319055160587 -710.30396478954628 asin0204 asin 0.0 9.1618092977897431e+307 -> 0.0 709.80181441050593 asin0205 asin -0.0 6.8064342551939755e+307 -> -0.0 709.50463910853489 asin0206 asin 0.0 -6.4997516454798215e+307 -> 0.0 -709.45853469751592 asin0207 asin -0.0 -1.6767449053345242e+308 -> -0.0 -710.4062101803022 asin0208 asin 5.4242749957378916e+307 0.0 -> 1.5707963267948966 709.27765497888902 asin0209 asin 9.5342145121164749e+307 -0.0 -> 1.5707963267948966 -709.84165758595907 asin0210 asin -7.0445698006201847e+307 0.0 -> -1.5707963267948966 709.53902780872136 asin0211 asin -1.0016025569769706e+308 -0.0 -> -1.5707963267948966 -709.89095709697881 asin0212 asin 1.6552203778877204e+308 0.48761543336249491 -> 1.5707963267948966 710.39328998153474 asin0213 asin 1.2485712830384869e+308 -4.3489311161278899 -> 1.5707963267948966 -710.1113557467786 asin0214 asin -1.5117842813353125e+308 5.123452666102434 -> -1.5707963267948966 710.30264641923031 asin0215 asin -1.3167634313008016e+308 -0.52939679793528982 -> -1.5707963267948966 -710.16453260239768 asin0216 asin 0.80843929176985907 1.0150851827767876e+308 -> 7.9642507396113875e-309 709.90432835561637 asin0217 asin 8.2544809829680901 -1.7423548140539474e+308 -> 4.7375430746865733e-308 -710.44459336242164 asin0218 asin -5.2499000118824295 4.6655578977512214e+307 -> -1.1252459249113292e-307 709.1269781491103 asin0219 asin -5.9904782760833433 -4.7315689314781163e+307 -> -1.2660659419394637e-307 -709.14102757522312 -- special values asin1000 asin -0.0 0.0 -> -0.0 0.0 asin1001 asin 0.0 0.0 -> 0.0 0.0 asin1002 asin -0.0 -0.0 -> -0.0 -0.0 asin1003 asin 0.0 -0.0 -> 0.0 -0.0 asin1004 asin -inf 0.0 -> -1.5707963267948966 inf asin1005 asin -inf 2.2999999999999998 -> -1.5707963267948966 inf asin1006 asin nan 0.0 -> nan nan asin1007 asin nan 2.2999999999999998 -> nan nan asin1008 asin -0.0 inf -> -0.0 inf asin1009 asin -2.2999999999999998 inf -> -0.0 inf asin1010 asin -inf inf -> -0.78539816339744828 inf asin1011 asin nan inf -> nan inf asin1012 asin -0.0 nan -> -0.0 nan asin1013 asin -2.2999999999999998 nan -> nan nan asin1014 asin -inf nan -> nan inf ignore-imag-sign asin1015 asin nan nan -> nan nan asin1016 asin inf 0.0 -> 1.5707963267948966 inf asin1017 asin inf 2.2999999999999998 -> 1.5707963267948966 inf asin1018 asin 0.0 inf -> 0.0 inf asin1019 asin 2.2999999999999998 inf -> 0.0 inf asin1020 asin inf inf -> 0.78539816339744828 inf asin1021 asin 0.0 nan -> 0.0 nan asin1022 asin 2.2999999999999998 nan -> nan nan asin1023 asin inf nan -> nan inf ignore-imag-sign asin1024 asin inf -0.0 -> 1.5707963267948966 -inf asin1025 asin inf -2.2999999999999998 -> 1.5707963267948966 -inf asin1026 asin nan -0.0 -> nan nan asin1027 asin nan -2.2999999999999998 -> nan nan asin1028 asin 0.0 -inf -> 0.0 -inf asin1029 asin 2.2999999999999998 -inf -> 0.0 -inf asin1030 asin inf -inf -> 0.78539816339744828 -inf asin1031 asin nan -inf -> nan -inf asin1032 asin -inf -0.0 -> -1.5707963267948966 -inf asin1033 asin -inf -2.2999999999999998 -> -1.5707963267948966 -inf asin1034 asin -0.0 -inf -> -0.0 -inf asin1035 asin -2.2999999999999998 -inf -> -0.0 -inf asin1036 asin -inf -inf -> -0.78539816339744828 -inf ------------------------------------ -- asinh: Inverse hyperbolic sine -- ------------------------------------ -- zeros asinh0000 asinh 0.0 0.0 -> 0.0 0.0 asinh0001 asinh 0.0 -0.0 -> 0.0 -0.0 asinh0002 asinh -0.0 0.0 -> -0.0 0.0 asinh0003 asinh -0.0 -0.0 -> -0.0 -0.0 -- branch points: +/-i asinh0010 asinh 0.0 1.0 -> 0.0 1.5707963267948966 asinh0011 asinh 0.0 -1.0 -> 0.0 -1.5707963267948966 asinh0012 asinh -0.0 1.0 -> -0.0 1.5707963267948966 asinh0013 asinh -0.0 -1.0 -> -0.0 -1.5707963267948966 -- values along both sides of imaginary axis asinh0020 asinh 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324 asinh0021 asinh -0.0 -9.8813129168249309e-324 -> -0.0 -9.8813129168249309e-324 asinh0022 asinh 0.0 -1e-305 -> 0.0 -1e-305 asinh0023 asinh -0.0 -1e-305 -> -0.0 -1e-305 asinh0024 asinh 0.0 -1e-150 -> 0.0 -1e-150 asinh0025 asinh -0.0 -1e-150 -> -0.0 -1e-150 asinh0026 asinh 0.0 -9.9999999999999998e-17 -> 0.0 -9.9999999999999998e-17 asinh0027 asinh -0.0 -9.9999999999999998e-17 -> -0.0 -9.9999999999999998e-17 asinh0028 asinh 0.0 -0.001 -> 0.0 -0.0010000001666667416 asinh0029 asinh -0.0 -0.001 -> -0.0 -0.0010000001666667416 asinh0030 asinh 0.0 -0.57899999999999996 -> 0.0 -0.61750165481717001 asinh0031 asinh -0.0 -0.57899999999999996 -> -0.0 -0.61750165481717001 asinh0032 asinh 0.0 -0.99999999999999989 -> 0.0 -1.5707963118937354 asinh0033 asinh -0.0 -0.99999999999999989 -> -0.0 -1.5707963118937354 asinh0034 asinh 0.0 -1.0000000000000002 -> 2.1073424255447014e-08 -1.5707963267948966 asinh0035 asinh -0.0 -1.0000000000000002 -> -2.1073424255447014e-08 -1.5707963267948966 asinh0036 asinh 0.0 -1.0009999999999999 -> 0.044717633608306849 -1.5707963267948966 asinh0037 asinh -0.0 -1.0009999999999999 -> -0.044717633608306849 -1.5707963267948966 asinh0038 asinh 0.0 -2.0 -> 1.3169578969248168 -1.5707963267948966 asinh0039 asinh -0.0 -2.0 -> -1.3169578969248168 -1.5707963267948966 asinh0040 asinh 0.0 -20.0 -> 3.6882538673612966 -1.5707963267948966 asinh0041 asinh -0.0 -20.0 -> -3.6882538673612966 -1.5707963267948966 asinh0042 asinh 0.0 -10000000000000000.0 -> 37.534508668464674 -1.5707963267948966 asinh0043 asinh -0.0 -10000000000000000.0 -> -37.534508668464674 -1.5707963267948966 asinh0044 asinh 0.0 -9.9999999999999998e+149 -> 346.08091112966679 -1.5707963267948966 asinh0045 asinh -0.0 -9.9999999999999998e+149 -> -346.08091112966679 -1.5707963267948966 asinh0046 asinh 0.0 -1.0000000000000001e+299 -> 689.16608998577965 -1.5707963267948966 asinh0047 asinh -0.0 -1.0000000000000001e+299 -> -689.16608998577965 -1.5707963267948966 asinh0048 asinh 0.0 9.8813129168249309e-324 -> 0.0 9.8813129168249309e-324 asinh0049 asinh -0.0 9.8813129168249309e-324 -> -0.0 9.8813129168249309e-324 asinh0050 asinh 0.0 1e-305 -> 0.0 1e-305 asinh0051 asinh -0.0 1e-305 -> -0.0 1e-305 asinh0052 asinh 0.0 1e-150 -> 0.0 1e-150 asinh0053 asinh -0.0 1e-150 -> -0.0 1e-150 asinh0054 asinh 0.0 9.9999999999999998e-17 -> 0.0 9.9999999999999998e-17 asinh0055 asinh -0.0 9.9999999999999998e-17 -> -0.0 9.9999999999999998e-17 asinh0056 asinh 0.0 0.001 -> 0.0 0.0010000001666667416 asinh0057 asinh -0.0 0.001 -> -0.0 0.0010000001666667416 asinh0058 asinh 0.0 0.57899999999999996 -> 0.0 0.61750165481717001 asinh0059 asinh -0.0 0.57899999999999996 -> -0.0 0.61750165481717001 asinh0060 asinh 0.0 0.99999999999999989 -> 0.0 1.5707963118937354 asinh0061 asinh -0.0 0.99999999999999989 -> -0.0 1.5707963118937354 asinh0062 asinh 0.0 1.0000000000000002 -> 2.1073424255447014e-08 1.5707963267948966 asinh0063 asinh -0.0 1.0000000000000002 -> -2.1073424255447014e-08 1.5707963267948966 asinh0064 asinh 0.0 1.0009999999999999 -> 0.044717633608306849 1.5707963267948966 asinh0065 asinh -0.0 1.0009999999999999 -> -0.044717633608306849 1.5707963267948966 asinh0066 asinh 0.0 2.0 -> 1.3169578969248168 1.5707963267948966 asinh0067 asinh -0.0 2.0 -> -1.3169578969248168 1.5707963267948966 asinh0068 asinh 0.0 20.0 -> 3.6882538673612966 1.5707963267948966 asinh0069 asinh -0.0 20.0 -> -3.6882538673612966 1.5707963267948966 asinh0070 asinh 0.0 10000000000000000.0 -> 37.534508668464674 1.5707963267948966 asinh0071 asinh -0.0 10000000000000000.0 -> -37.534508668464674 1.5707963267948966 asinh0072 asinh 0.0 9.9999999999999998e+149 -> 346.08091112966679 1.5707963267948966 asinh0073 asinh -0.0 9.9999999999999998e+149 -> -346.08091112966679 1.5707963267948966 asinh0074 asinh 0.0 1.0000000000000001e+299 -> 689.16608998577965 1.5707963267948966 asinh0075 asinh -0.0 1.0000000000000001e+299 -> -689.16608998577965 1.5707963267948966 -- random inputs asinh0100 asinh -0.5946402853710423 -0.044506548910000145 -> -0.56459775392653022 -0.038256221441536356 asinh0101 asinh -0.19353958046180916 -0.017489624793193454 -> -0.19237926804196651 -0.017171741895336792 asinh0102 asinh -0.033117585138955893 -8.5256414015933757 -> -2.8327758348650969 -1.5668848791092411 asinh0103 asinh -1.5184043184035716 -0.73491245339073275 -> -1.2715891419764005 -0.39204624408542355 asinh0104 asinh -0.60716120271208818 -0.28900743958436542 -> -0.59119299421187232 -0.24745931678118135 asinh0105 asinh -0.0237177865112429 2.8832601052166313 -> -1.7205820772413236 1.5620261702963094 asinh0106 asinh -2.3906812342743979 2.6349216848574013 -> -1.9609636249445124 0.8142142660574706 asinh0107 asinh -0.0027605019787620517 183.85588476550555 -> -5.9072920005445066 1.5707813120847871 asinh0108 asinh -0.99083661164404713 0.028006797051617648 -> -0.8750185251283995 0.019894099615994653 asinh0109 asinh -3.0362951937986393 0.86377266758504867 -> -1.8636030714685221 0.26475058859950168 asinh0110 asinh 0.34438464536152769 -0.71603790174885029 -> 0.43985415690734164 -0.71015037409294324 asinh0111 asinh 4.4925124413876256 -60604595352.871613 -> 25.520783738612078 -1.5707963267207683 asinh0112 asinh 2.3213991428170337 -7.5459667007307258 -> 2.7560464993451643 -1.270073210856117 asinh0113 asinh 0.21291939741682028 -1.2720428814784408 -> 0.77275088137338266 -1.3182099250896895 asinh0114 asinh 6.6447359379455957 -0.97196191666946996 -> 2.602830695139672 -0.14368247412319965 asinh0115 asinh 7.1326256655083746 2.1516360452706857 -> 2.7051146374367212 0.29051701669727581 asinh0116 asinh 0.18846550905063442 3.4705348585339832 -> 1.917697875799296 1.514155593347924 asinh0117 asinh 0.19065075303281598 0.26216814548222012 -> 0.19603050785932474 0.26013422809614117 asinh0118 asinh 2.0242004665739719 0.70510281647495787 -> 1.4970366212896002 0.30526007200481453 asinh0119 asinh 37.336596461576057 717.29157391678234 -> 7.269981997945294 1.5187910219576033 -- values near infinity asinh0200 asinh 1.0760517500874541e+308 1.1497786241240167e+308 -> 710.34346055651815 0.81850936961793475 asinh0201 asinh 1.1784839328845529e+308 -1.6478429586716638e+308 -> 710.59536255783678 -0.94996311735607697 asinh0202 asinh -4.8777682248909193e+307 1.4103736217538474e+308 -> -710.28970147376992 1.2378239519096443 asinh0203 asinh -1.2832478903233108e+308 -1.5732392613155698e+308 -> -710.59750164290745 -0.88657181439322452 asinh0204 asinh 0.0 6.8431383856345372e+307 -> 709.51001718444604 1.5707963267948966 asinh0205 asinh -0.0 8.601822432238051e+307 -> -709.73874482126689 1.5707963267948966 asinh0206 asinh 0.0 -5.5698396067303782e+307 -> 709.30413698733742 -1.5707963267948966 asinh0207 asinh -0.0 -7.1507777734621804e+307 -> -709.55399186002705 -1.5707963267948966 asinh0208 asinh 1.6025136110019349e+308 0.0 -> 710.3609292261076 0.0 asinh0209 asinh 1.3927819858239114e+308 -0.0 -> 710.22065899832899 -0.0 asinh0210 asinh -6.0442994056210995e+307 0.0 -> -709.38588631057621 0.0 asinh0211 asinh -1.2775271979042634e+308 -0.0 -> -710.13428215553972 -0.0 asinh0212 asinh 1.0687496260268489e+308 1.0255615699476961 -> 709.95584521407841 9.5959010882679093e-309 asinh0213 asinh 1.0050967333370962e+308 -0.87668970117333433 -> 709.89443961168183 -8.7224410556242882e-309 asinh0214 asinh -5.7161452814862392e+307 8.2377808413450122 -> -709.33006540611166 1.4411426644501116e-307 asinh0215 asinh -8.2009040727653315e+307 -6.407409526654976 -> -709.69101513070109 -7.8130526461510088e-308 asinh0216 asinh 6.4239368496483982 1.6365990821551427e+308 -> 710.38197618101287 1.5707963267948966 asinh0217 asinh 5.4729111423315882 -1.1227237438144211e+308 -> 710.00511346983546 -1.5707963267948966 asinh0218 asinh -8.3455818297412723 1.443172020182019e+308 -> -710.25619930551818 1.5707963267948966 asinh0219 asinh -2.6049726230372441 -1.7952291144022702e+308 -> -710.47448847685644 -1.5707963267948966 -- values near 0 asinh0220 asinh 1.2940113339664088e-314 6.9169190417774516e-323 -> 1.2940113339664088e-314 6.9169190417774516e-323 asinh0221 asinh 2.3848478863874649e-315 -3.1907655025717717e-310 -> 2.3848478863874649e-315 -3.1907655025717717e-310 asinh0222 asinh -3.0097643679641622e-316 4.6936236354918422e-322 -> -3.0097643679641622e-316 4.6936236354918422e-322 asinh0223 asinh -1.787997087755751e-308 -8.5619622834902341e-310 -> -1.787997087755751e-308 -8.5619622834902341e-310 asinh0224 asinh 0.0 1.2491433448427325e-314 -> 0.0 1.2491433448427325e-314 asinh0225 asinh -0.0 2.5024072154538062e-308 -> -0.0 2.5024072154538062e-308 asinh0226 asinh 0.0 -2.9643938750474793e-323 -> 0.0 -2.9643938750474793e-323 asinh0227 asinh -0.0 -2.9396905927554169e-320 -> -0.0 -2.9396905927554169e-320 asinh0228 asinh 5.64042930029359e-317 0.0 -> 5.64042930029359e-317 0.0 asinh0229 asinh 3.3833911866596068e-318 -0.0 -> 3.3833911866596068e-318 -0.0 asinh0230 asinh -4.9406564584124654e-324 0.0 -> -4.9406564584124654e-324 0.0 asinh0231 asinh -2.2211379227994845e-308 -0.0 -> -2.2211379227994845e-308 -0.0 -- special values asinh1000 asinh 0.0 0.0 -> 0.0 0.0 asinh1001 asinh 0.0 -0.0 -> 0.0 -0.0 asinh1002 asinh -0.0 0.0 -> -0.0 0.0 asinh1003 asinh -0.0 -0.0 -> -0.0 -0.0 asinh1004 asinh 0.0 inf -> inf 1.5707963267948966 asinh1005 asinh 2.3 inf -> inf 1.5707963267948966 asinh1006 asinh 0.0 nan -> nan nan asinh1007 asinh 2.3 nan -> nan nan asinh1008 asinh inf 0.0 -> inf 0.0 asinh1009 asinh inf 2.3 -> inf 0.0 asinh1010 asinh inf inf -> inf 0.78539816339744828 asinh1011 asinh inf nan -> inf nan asinh1012 asinh nan 0.0 -> nan 0.0 asinh1013 asinh nan 2.3 -> nan nan asinh1014 asinh nan inf -> inf nan ignore-real-sign asinh1015 asinh nan nan -> nan nan asinh1016 asinh 0.0 -inf -> inf -1.5707963267948966 asinh1017 asinh 2.3 -inf -> inf -1.5707963267948966 asinh1018 asinh inf -0.0 -> inf -0.0 asinh1019 asinh inf -2.3 -> inf -0.0 asinh1020 asinh inf -inf -> inf -0.78539816339744828 asinh1021 asinh nan -0.0 -> nan -0.0 asinh1022 asinh nan -2.3 -> nan nan asinh1023 asinh nan -inf -> inf nan ignore-real-sign asinh1024 asinh -0.0 -inf -> -inf -1.5707963267948966 asinh1025 asinh -2.3 -inf -> -inf -1.5707963267948966 asinh1026 asinh -0.0 nan -> nan nan asinh1027 asinh -2.3 nan -> nan nan asinh1028 asinh -inf -0.0 -> -inf -0.0 asinh1029 asinh -inf -2.3 -> -inf -0.0 asinh1030 asinh -inf -inf -> -inf -0.78539816339744828 asinh1031 asinh -inf nan -> -inf nan asinh1032 asinh -0.0 inf -> -inf 1.5707963267948966 asinh1033 asinh -2.3 inf -> -inf 1.5707963267948966 asinh1034 asinh -inf 0.0 -> -inf 0.0 asinh1035 asinh -inf 2.3 -> -inf 0.0 asinh1036 asinh -inf inf -> -inf 0.78539816339744828 --------------------------- -- atan: Inverse tangent -- --------------------------- -- zeros -- These are tested in testAtanSign in test_cmath.py -- atan0000 atan 0.0 0.0 -> 0.0 0.0 -- atan0001 atan 0.0 -0.0 -> 0.0 -0.0 -- atan0002 atan -0.0 0.0 -> -0.0 0.0 -- atan0003 atan -0.0 -0.0 -> -0.0 -0.0 -- values along both sides of imaginary axis atan0010 atan 0.0 -9.8813129168249309e-324 -> 0.0 -9.8813129168249309e-324 atan0011 atan -0.0 -9.8813129168249309e-324 -> -0.0 -9.8813129168249309e-324 atan0012 atan 0.0 -1e-305 -> 0.0 -1e-305 atan0013 atan -0.0 -1e-305 -> -0.0 -1e-305 atan0014 atan 0.0 -1e-150 -> 0.0 -1e-150 atan0015 atan -0.0 -1e-150 -> -0.0 -1e-150 atan0016 atan 0.0 -9.9999999999999998e-17 -> 0.0 -9.9999999999999998e-17 atan0017 atan -0.0 -9.9999999999999998e-17 -> -0.0 -9.9999999999999998e-17 atan0018 atan 0.0 -0.001 -> 0.0 -0.0010000003333335333 atan0019 atan -0.0 -0.001 -> -0.0 -0.0010000003333335333 atan0020 atan 0.0 -0.57899999999999996 -> 0.0 -0.6609570902866303 atan0021 atan -0.0 -0.57899999999999996 -> -0.0 -0.6609570902866303 atan0022 atan 0.0 -0.99999999999999989 -> 0.0 -18.714973875118524 atan0023 atan -0.0 -0.99999999999999989 -> -0.0 -18.714973875118524 atan0024 atan 0.0 -1.0000000000000002 -> 1.5707963267948966 -18.36840028483855 atan0025 atan -0.0 -1.0000000000000002 -> -1.5707963267948966 -18.36840028483855 atan0026 atan 0.0 -1.0009999999999999 -> 1.5707963267948966 -3.8007011672919218 atan0027 atan -0.0 -1.0009999999999999 -> -1.5707963267948966 -3.8007011672919218 atan0028 atan 0.0 -2.0 -> 1.5707963267948966 -0.54930614433405489 atan0029 atan -0.0 -2.0 -> -1.5707963267948966 -0.54930614433405489 atan0030 atan 0.0 -20.0 -> 1.5707963267948966 -0.050041729278491265 atan0031 atan -0.0 -20.0 -> -1.5707963267948966 -0.050041729278491265 atan0032 atan 0.0 -10000000000000000.0 -> 1.5707963267948966 -9.9999999999999998e-17 atan0033 atan -0.0 -10000000000000000.0 -> -1.5707963267948966 -9.9999999999999998e-17 atan0034 atan 0.0 -9.9999999999999998e+149 -> 1.5707963267948966 -1e-150 atan0035 atan -0.0 -9.9999999999999998e+149 -> -1.5707963267948966 -1e-150 atan0036 atan 0.0 -1.0000000000000001e+299 -> 1.5707963267948966 -9.9999999999999999e-300 atan0037 atan -0.0 -1.0000000000000001e+299 -> -1.5707963267948966 -9.9999999999999999e-300 atan0038 atan 0.0 9.8813129168249309e-324 -> 0.0 9.8813129168249309e-324 atan0039 atan -0.0 9.8813129168249309e-324 -> -0.0 9.8813129168249309e-324 atan0040 atan 0.0 1e-305 -> 0.0 1e-305 atan0041 atan -0.0 1e-305 -> -0.0 1e-305 atan0042 atan 0.0 1e-150 -> 0.0 1e-150 atan0043 atan -0.0 1e-150 -> -0.0 1e-150 atan0044 atan 0.0 9.9999999999999998e-17 -> 0.0 9.9999999999999998e-17 atan0045 atan -0.0 9.9999999999999998e-17 -> -0.0 9.9999999999999998e-17 atan0046 atan 0.0 0.001 -> 0.0 0.0010000003333335333 atan0047 atan -0.0 0.001 -> -0.0 0.0010000003333335333 atan0048 atan 0.0 0.57899999999999996 -> 0.0 0.6609570902866303 atan0049 atan -0.0 0.57899999999999996 -> -0.0 0.6609570902866303 atan0050 atan 0.0 0.99999999999999989 -> 0.0 18.714973875118524 atan0051 atan -0.0 0.99999999999999989 -> -0.0 18.714973875118524 atan0052 atan 0.0 1.0000000000000002 -> 1.5707963267948966 18.36840028483855 atan0053 atan -0.0 1.0000000000000002 -> -1.5707963267948966 18.36840028483855 atan0054 atan 0.0 1.0009999999999999 -> 1.5707963267948966 3.8007011672919218 atan0055 atan -0.0 1.0009999999999999 -> -1.5707963267948966 3.8007011672919218 atan0056 atan 0.0 2.0 -> 1.5707963267948966 0.54930614433405489 atan0057 atan -0.0 2.0 -> -1.5707963267948966 0.54930614433405489 atan0058 atan 0.0 20.0 -> 1.5707963267948966 0.050041729278491265 atan0059 atan -0.0 20.0 -> -1.5707963267948966 0.050041729278491265 atan0060 atan 0.0 10000000000000000.0 -> 1.5707963267948966 9.9999999999999998e-17 atan0061 atan -0.0 10000000000000000.0 -> -1.5707963267948966 9.9999999999999998e-17 atan0062 atan 0.0 9.9999999999999998e+149 -> 1.5707963267948966 1e-150 atan0063 atan -0.0 9.9999999999999998e+149 -> -1.5707963267948966 1e-150 atan0064 atan 0.0 1.0000000000000001e+299 -> 1.5707963267948966 9.9999999999999999e-300 atan0065 atan -0.0 1.0000000000000001e+299 -> -1.5707963267948966 9.9999999999999999e-300 -- random inputs atan0100 atan -0.32538873661060214 -1.5530461550412578 -> -1.3682728427554227 -0.69451401598762041 atan0101 atan -0.45863393495197929 -4799.1747094903594 -> -1.5707963068820623 -0.00020836916050636145 atan0102 atan -8.3006999685976162 -2.6788890251790938 -> -1.4619862771810199 -0.034811669653327826 atan0103 atan -1.8836307682985314 -1.1441976638861771 -> -1.1839984370871612 -0.20630956157312796 atan0104 atan -0.00063230482407491669 -4.9312520961829485 -> -1.5707692093223147 -0.20563867743008304 atan0105 atan -0.84278137150065946 179012.37493146997 -> -1.5707963267685969 5.5862059836425272e-06 atan0106 atan -0.95487853984049287 14.311334539886177 -> -1.5661322859434561 0.069676024526232005 atan0107 atan -1.3513252539663239 6.0500727021632198e-08 -> -0.93371676315220975 2.140800269742656e-08 atan0108 atan -0.20566254458595795 0.11933771944159823 -> -0.20556463711174916 0.11493405387141732 atan0109 atan -0.58563718795408559 0.64438965423212868 -> -0.68361089300233124 0.46759762751800249 atan0110 atan 48.479267751948292 -78.386382460112543 -> 1.5650888770910523 -0.0092276811373297584 atan0111 atan 1.0575373914056061 -0.75988012377296987 -> 0.94430886722043594 -0.31915698126703118 atan0112 atan 4444810.4314677203 -0.56553404593942558 -> 1.5707961018134231 -2.8625446437701909e-14 atan0113 atan 0.010101405082520009 -0.032932668550282478 -> 0.01011202676646334 -0.032941214776834996 atan0114 atan 1.5353585300154911 -2.1947099346796519 -> 1.3400310739206394 -0.29996003607449045 atan0115 atan 0.21869457055670882 9.9915684254007093 -> 1.5685846078876444 0.1003716881759439 atan0116 atan 0.17783290150246836 0.064334689863650957 -> 0.17668728064286277 0.062435808728873846 atan0117 atan 15.757474087615918 383.57262142534 -> 1.5706894060369621 0.0026026817278826603 atan0118 atan 10.587017408533317 0.21720238081843438 -> 1.4766594681336236 0.0019199097383010061 atan0119 atan 0.86026078678781204 0.1230148609359502 -> 0.7147259322534929 0.070551221954286605 -- values near infinity atan0200 atan 7.8764397011195798e+307 8.1647921137746308e+307 -> 1.5707963267948966 6.3439446939604493e-309 atan0201 atan 1.5873698696131487e+308 -1.0780367422960641e+308 -> 1.5707963267948966 -2.9279309368530781e-309 atan0202 atan -1.5844551864825834e+308 1.0290657809098675e+308 -> -1.5707963267948966 2.8829614736961417e-309 atan0203 atan -1.3168792562524032e+308 -9.088432341614825e+307 -> -1.5707963267948966 -3.5499373057390056e-309 atan0204 atan 0.0 1.0360465742258337e+308 -> 1.5707963267948966 9.6520757355646018e-309 atan0205 atan -0.0 1.0045063210373196e+308 -> -1.5707963267948966 9.955138947929503e-309 atan0206 atan 0.0 -9.5155296715763696e+307 -> 1.5707963267948966 -1.050913648020118e-308 atan0207 atan -0.0 -1.5565700490496501e+308 -> -1.5707963267948966 -6.4243816114189071e-309 atan0208 atan 1.2956339389525244e+308 0.0 -> 1.5707963267948966 0.0 atan0209 atan 1.4408126243772151e+308 -0.0 -> 1.5707963267948966 -0.0 atan0210 atan -1.0631786461936417e+308 0.0 -> -1.5707963267948966 0.0 atan0211 atan -1.0516056964171069e+308 -0.0 -> -1.5707963267948966 -0.0 atan0212 atan 1.236162319603838e+308 4.6827953496242936 -> 1.5707963267948966 0.0 atan0213 atan 7.000516472897218e+307 -5.8631608017844163 -> 1.5707963267948966 -0.0 atan0214 atan -1.5053444003338508e+308 5.1199197268420313 -> -1.5707963267948966 0.0 atan0215 atan -1.399172518147259e+308 -3.5687766472913673 -> -1.5707963267948966 -0.0 atan0216 atan 8.1252833070803021 6.2782953917343822e+307 -> 1.5707963267948966 1.5927890256908564e-308 atan0217 atan 2.8034285947515167 -1.3378049775753878e+308 -> 1.5707963267948966 -7.4749310756219562e-309 atan0218 atan -1.4073509988974953 1.6776381785968355e+308 -> -1.5707963267948966 5.9607608646364569e-309 atan0219 atan -2.7135551527592119 -1.281567445525738e+308 -> -1.5707963267948966 -7.8029447727565326e-309 -- imaginary part = +/-1, real part tiny atan0300 atan -1e-150 -1.0 -> -0.78539816339744828 -173.04045556483339 atan0301 atan 1e-155 1.0 -> 0.78539816339744828 178.79691829731851 atan0302 atan 9.9999999999999999e-161 -1.0 -> 0.78539816339744828 -184.55338102980363 atan0303 atan -1e-165 1.0 -> -0.78539816339744828 190.30984376228875 atan0304 atan -9.9998886718268301e-321 -1.0 -> -0.78539816339744828 -368.76019403576692 -- special values atan1000 atan -0.0 0.0 -> -0.0 0.0 atan1001 atan nan 0.0 -> nan 0.0 atan1002 atan -0.0 1.0 -> -0.0 inf divide-by-zero atan1003 atan -inf 0.0 -> -1.5707963267948966 0.0 atan1004 atan -inf 2.2999999999999998 -> -1.5707963267948966 0.0 atan1005 atan nan 2.2999999999999998 -> nan nan atan1006 atan -0.0 inf -> -1.5707963267948966 0.0 atan1007 atan -2.2999999999999998 inf -> -1.5707963267948966 0.0 atan1008 atan -inf inf -> -1.5707963267948966 0.0 atan1009 atan nan inf -> nan 0.0 atan1010 atan -0.0 nan -> nan nan atan1011 atan -2.2999999999999998 nan -> nan nan atan1012 atan -inf nan -> -1.5707963267948966 0.0 ignore-imag-sign atan1013 atan nan nan -> nan nan atan1014 atan 0.0 0.0 -> 0.0 0.0 atan1015 atan 0.0 1.0 -> 0.0 inf divide-by-zero atan1016 atan inf 0.0 -> 1.5707963267948966 0.0 atan1017 atan inf 2.2999999999999998 -> 1.5707963267948966 0.0 atan1018 atan 0.0 inf -> 1.5707963267948966 0.0 atan1019 atan 2.2999999999999998 inf -> 1.5707963267948966 0.0 atan1020 atan inf inf -> 1.5707963267948966 0.0 atan1021 atan 0.0 nan -> nan nan atan1022 atan 2.2999999999999998 nan -> nan nan atan1023 atan inf nan -> 1.5707963267948966 0.0 ignore-imag-sign atan1024 atan 0.0 -0.0 -> 0.0 -0.0 atan1025 atan nan -0.0 -> nan -0.0 atan1026 atan 0.0 -1.0 -> 0.0 -inf divide-by-zero atan1027 atan inf -0.0 -> 1.5707963267948966 -0.0 atan1028 atan inf -2.2999999999999998 -> 1.5707963267948966 -0.0 atan1029 atan nan -2.2999999999999998 -> nan nan atan1030 atan 0.0 -inf -> 1.5707963267948966 -0.0 atan1031 atan 2.2999999999999998 -inf -> 1.5707963267948966 -0.0 atan1032 atan inf -inf -> 1.5707963267948966 -0.0 atan1033 atan nan -inf -> nan -0.0 atan1034 atan -0.0 -0.0 -> -0.0 -0.0 atan1035 atan -0.0 -1.0 -> -0.0 -inf divide-by-zero atan1036 atan -inf -0.0 -> -1.5707963267948966 -0.0 atan1037 atan -inf -2.2999999999999998 -> -1.5707963267948966 -0.0 atan1038 atan -0.0 -inf -> -1.5707963267948966 -0.0 atan1039 atan -2.2999999999999998 -inf -> -1.5707963267948966 -0.0 atan1040 atan -inf -inf -> -1.5707963267948966 -0.0 --------------------------------------- -- atanh: Inverse hyperbolic tangent -- --------------------------------------- -- zeros -- These are tested in testAtanhSign in test_cmath.py -- atanh0000 atanh 0.0 0.0 -> 0.0 0.0 -- atanh0001 atanh 0.0 -0.0 -> 0.0 -0.0 -- atanh0002 atanh -0.0 0.0 -> -0.0 0.0 -- atanh0003 atanh -0.0 -0.0 -> -0.0 -0.0 -- values along both sides of real axis atanh0010 atanh -9.8813129168249309e-324 0.0 -> -9.8813129168249309e-324 0.0 atanh0011 atanh -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 atanh0012 atanh -1e-305 0.0 -> -1e-305 0.0 atanh0013 atanh -1e-305 -0.0 -> -1e-305 -0.0 atanh0014 atanh -1e-150 0.0 -> -1e-150 0.0 atanh0015 atanh -1e-150 -0.0 -> -1e-150 -0.0 atanh0016 atanh -9.9999999999999998e-17 0.0 -> -9.9999999999999998e-17 0.0 atanh0017 atanh -9.9999999999999998e-17 -0.0 -> -9.9999999999999998e-17 -0.0 atanh0018 atanh -0.001 0.0 -> -0.0010000003333335333 0.0 atanh0019 atanh -0.001 -0.0 -> -0.0010000003333335333 -0.0 atanh0020 atanh -0.57899999999999996 0.0 -> -0.6609570902866303 0.0 atanh0021 atanh -0.57899999999999996 -0.0 -> -0.6609570902866303 -0.0 atanh0022 atanh -0.99999999999999989 0.0 -> -18.714973875118524 0.0 atanh0023 atanh -0.99999999999999989 -0.0 -> -18.714973875118524 -0.0 atanh0024 atanh -1.0000000000000002 0.0 -> -18.36840028483855 1.5707963267948966 atanh0025 atanh -1.0000000000000002 -0.0 -> -18.36840028483855 -1.5707963267948966 atanh0026 atanh -1.0009999999999999 0.0 -> -3.8007011672919218 1.5707963267948966 atanh0027 atanh -1.0009999999999999 -0.0 -> -3.8007011672919218 -1.5707963267948966 atanh0028 atanh -2.0 0.0 -> -0.54930614433405489 1.5707963267948966 atanh0029 atanh -2.0 -0.0 -> -0.54930614433405489 -1.5707963267948966 atanh0030 atanh -23.0 0.0 -> -0.043505688494814884 1.5707963267948966 atanh0031 atanh -23.0 -0.0 -> -0.043505688494814884 -1.5707963267948966 atanh0032 atanh -10000000000000000.0 0.0 -> -9.9999999999999998e-17 1.5707963267948966 atanh0033 atanh -10000000000000000.0 -0.0 -> -9.9999999999999998e-17 -1.5707963267948966 atanh0034 atanh -9.9999999999999998e+149 0.0 -> -1e-150 1.5707963267948966 atanh0035 atanh -9.9999999999999998e+149 -0.0 -> -1e-150 -1.5707963267948966 atanh0036 atanh -1.0000000000000001e+299 0.0 -> -9.9999999999999999e-300 1.5707963267948966 atanh0037 atanh -1.0000000000000001e+299 -0.0 -> -9.9999999999999999e-300 -1.5707963267948966 atanh0038 atanh 9.8813129168249309e-324 0.0 -> 9.8813129168249309e-324 0.0 atanh0039 atanh 9.8813129168249309e-324 -0.0 -> 9.8813129168249309e-324 -0.0 atanh0040 atanh 1e-305 0.0 -> 1e-305 0.0 atanh0041 atanh 1e-305 -0.0 -> 1e-305 -0.0 atanh0042 atanh 1e-150 0.0 -> 1e-150 0.0 atanh0043 atanh 1e-150 -0.0 -> 1e-150 -0.0 atanh0044 atanh 9.9999999999999998e-17 0.0 -> 9.9999999999999998e-17 0.0 atanh0045 atanh 9.9999999999999998e-17 -0.0 -> 9.9999999999999998e-17 -0.0 atanh0046 atanh 0.001 0.0 -> 0.0010000003333335333 0.0 atanh0047 atanh 0.001 -0.0 -> 0.0010000003333335333 -0.0 atanh0048 atanh 0.57899999999999996 0.0 -> 0.6609570902866303 0.0 atanh0049 atanh 0.57899999999999996 -0.0 -> 0.6609570902866303 -0.0 atanh0050 atanh 0.99999999999999989 0.0 -> 18.714973875118524 0.0 atanh0051 atanh 0.99999999999999989 -0.0 -> 18.714973875118524 -0.0 atanh0052 atanh 1.0000000000000002 0.0 -> 18.36840028483855 1.5707963267948966 atanh0053 atanh 1.0000000000000002 -0.0 -> 18.36840028483855 -1.5707963267948966 atanh0054 atanh 1.0009999999999999 0.0 -> 3.8007011672919218 1.5707963267948966 atanh0055 atanh 1.0009999999999999 -0.0 -> 3.8007011672919218 -1.5707963267948966 atanh0056 atanh 2.0 0.0 -> 0.54930614433405489 1.5707963267948966 atanh0057 atanh 2.0 -0.0 -> 0.54930614433405489 -1.5707963267948966 atanh0058 atanh 23.0 0.0 -> 0.043505688494814884 1.5707963267948966 atanh0059 atanh 23.0 -0.0 -> 0.043505688494814884 -1.5707963267948966 atanh0060 atanh 10000000000000000.0 0.0 -> 9.9999999999999998e-17 1.5707963267948966 atanh0061 atanh 10000000000000000.0 -0.0 -> 9.9999999999999998e-17 -1.5707963267948966 atanh0062 atanh 9.9999999999999998e+149 0.0 -> 1e-150 1.5707963267948966 atanh0063 atanh 9.9999999999999998e+149 -0.0 -> 1e-150 -1.5707963267948966 atanh0064 atanh 1.0000000000000001e+299 0.0 -> 9.9999999999999999e-300 1.5707963267948966 atanh0065 atanh 1.0000000000000001e+299 -0.0 -> 9.9999999999999999e-300 -1.5707963267948966 -- random inputs atanh0100 atanh -0.54460925980633501 -0.54038050126721027 -> -0.41984265808446974 -0.60354153938352828 atanh0101 atanh -1.6934614269829051 -0.48807386108113621 -> -0.58592769102243281 -1.3537837470975898 atanh0102 atanh -1.3467293985501207 -0.47868354895395876 -> -0.69961624370709985 -1.1994450156570076 atanh0103 atanh -5.6142232418984888 -544551613.39307702 -> -1.8932657550925744e-17 -1.5707963249585235 atanh0104 atanh -0.011841460381263651 -3.259978899823385 -> -0.0010183936547405188 -1.2731614020743838 atanh0105 atanh -0.0073345736950029532 0.35821949670922248 -> -0.0065004869024682466 0.34399359971920895 atanh0106 atanh -13.866782244320014 0.9541129545860273 -> -0.071896852055058899 1.5658322704631409 atanh0107 atanh -708.59964982780775 21.984802159266675 -> -0.0014098779074189741 1.5707525842838959 atanh0108 atanh -30.916832076030602 1.3691897138829843 -> -0.032292682045743676 1.5693652094847115 atanh0109 atanh -0.57461806339861754 0.29534797443913063 -> -0.56467464472482765 0.39615612824172625 atanh0110 atanh 0.40089246737415685 -1.632285984300659 -> 0.1063832707890608 -1.0402821335326482 atanh0111 atanh 2119.6167688262176 -1.5383653437377242e+17 -> 8.9565008518382049e-32 -1.5707963267948966 atanh0112 atanh 756.86017850941641 -6.6064087133223817 -> 0.0013211481136820046 -1.5707847948702234 atanh0113 atanh 4.0490617718041602 -2.5784456791040652e-12 -> 0.25218425538553618 -1.5707963267947291 atanh0114 atanh 10.589254957173523 -0.13956391149624509 -> 0.094700890282197664 -1.5695407140217623 atanh0115 atanh 1.0171187553160499 0.70766113465354019 -> 0.55260251975367791 0.96619711116641682 atanh0116 atanh 0.031645502527750849 0.067319983726544394 -> 0.031513018344086742 0.067285437670549036 atanh0117 atanh 0.13670177624994517 0.43240089361857947 -> 0.11538933151017253 0.41392008145336212 atanh0118 atanh 0.64173899243596688 2.9008577686695256 -> 0.065680142424134405 1.2518535724053921 atanh0119 atanh 0.19313813528025942 38.799619150741869 -> 0.00012820765917366644 1.5450292202823612 -- values near infinity atanh0200 atanh 5.3242646831347954e+307 1.3740396080084153e+308 -> 2.4519253616695576e-309 1.5707963267948966 atanh0201 atanh 1.158701641241358e+308 -6.5579268873375853e+307 -> 6.5365375267795098e-309 -1.5707963267948966 atanh0202 atanh -1.3435325735762247e+308 9.8947369259601547e+307 -> -4.8256680906589956e-309 1.5707963267948966 atanh0203 atanh -1.4359857522598942e+308 -9.4701204702391004e+307 -> -4.8531282262872645e-309 -1.5707963267948966 atanh0204 atanh 0.0 5.6614181068098497e+307 -> 0.0 1.5707963267948966 atanh0205 atanh -0.0 6.9813212721450139e+307 -> -0.0 1.5707963267948966 atanh0206 atanh 0.0 -7.4970613060311453e+307 -> 0.0 -1.5707963267948966 atanh0207 atanh -0.0 -1.5280601880314068e+308 -> -0.0 -1.5707963267948966 atanh0208 atanh 8.2219472336000745e+307 0.0 -> 1.2162568933954813e-308 1.5707963267948966 atanh0209 atanh 1.4811519617280899e+308 -0.0 -> 6.7515017083951325e-309 -1.5707963267948966 atanh0210 atanh -1.2282016263598785e+308 0.0 -> -8.1419856360537615e-309 1.5707963267948966 atanh0211 atanh -1.0616427760154426e+308 -0.0 -> -9.4193642399489563e-309 -1.5707963267948966 atanh0212 atanh 1.2971536510180682e+308 5.2847948452333293 -> 7.7091869510998328e-309 1.5707963267948966 atanh0213 atanh 1.1849860977411851e+308 -7.9781906447459949 -> 8.4389175696339014e-309 -1.5707963267948966 atanh0214 atanh -1.4029969422586635e+308 0.93891986543663375 -> -7.127599283218073e-309 1.5707963267948966 atanh0215 atanh -4.7508098912248211e+307 -8.2702421247039908 -> -2.1049042645278043e-308 -1.5707963267948966 atanh0216 atanh 8.2680742115769998 8.1153898410918065e+307 -> 0.0 1.5707963267948966 atanh0217 atanh 1.2575325146218885 -1.4746679147661649e+308 -> 0.0 -1.5707963267948966 atanh0218 atanh -2.4618803682310899 1.3781522717005568e+308 -> -0.0 1.5707963267948966 atanh0219 atanh -4.0952386694788112 -1.231083376353703e+308 -> -0.0 -1.5707963267948966 -- values near 0 atanh0220 atanh 3.8017563659811628e-314 2.6635484239074319e-312 -> 3.8017563659811628e-314 2.6635484239074319e-312 atanh0221 atanh 1.7391110733611878e-321 -4.3547800672541419e-313 -> 1.7391110733611878e-321 -4.3547800672541419e-313 atanh0222 atanh -5.9656816081325078e-317 9.9692253555416263e-313 -> -5.9656816081325078e-317 9.9692253555416263e-313 atanh0223 atanh -6.5606671178400239e-313 -2.1680936406357335e-309 -> -6.5606671178400239e-313 -2.1680936406357335e-309 atanh0224 atanh 0.0 2.5230944401820779e-319 -> 0.0 2.5230944401820779e-319 atanh0225 atanh -0.0 5.6066569490064658e-320 -> -0.0 5.6066569490064658e-320 atanh0226 atanh 0.0 -2.4222487249468377e-317 -> 0.0 -2.4222487249468377e-317 atanh0227 atanh -0.0 -3.0861101089206037e-316 -> -0.0 -3.0861101089206037e-316 atanh0228 atanh 3.1219222884393986e-310 0.0 -> 3.1219222884393986e-310 0.0 atanh0229 atanh 9.8926337564976196e-309 -0.0 -> 9.8926337564976196e-309 -0.0 atanh0230 atanh -1.5462535092918154e-312 0.0 -> -1.5462535092918154e-312 0.0 atanh0231 atanh -9.8813129168249309e-324 -0.0 -> -9.8813129168249309e-324 -0.0 -- real part = +/-1, imaginary part tiny atanh0300 atanh 1.0 1e-153 -> 176.49433320432448 0.78539816339744828 atanh0301 atanh 1.0 9.9999999999999997e-155 -> 177.64562575082149 0.78539816339744828 atanh0302 atanh -1.0 1e-161 -> -185.70467357630065 0.78539816339744828 atanh0303 atanh 1.0 -1e-165 -> 190.30984376228875 -0.78539816339744828 atanh0304 atanh -1.0 -9.8813129168249309e-324 -> -372.22003596069061 -0.78539816339744828 -- special values atanh1000 atanh 0.0 0.0 -> 0.0 0.0 atanh1001 atanh 0.0 nan -> 0.0 nan atanh1002 atanh 1.0 0.0 -> inf 0.0 divide-by-zero atanh1003 atanh 0.0 inf -> 0.0 1.5707963267948966 atanh1004 atanh 2.3 inf -> 0.0 1.5707963267948966 atanh1005 atanh 2.3 nan -> nan nan atanh1006 atanh inf 0.0 -> 0.0 1.5707963267948966 atanh1007 atanh inf 2.3 -> 0.0 1.5707963267948966 atanh1008 atanh inf inf -> 0.0 1.5707963267948966 atanh1009 atanh inf nan -> 0.0 nan atanh1010 atanh nan 0.0 -> nan nan atanh1011 atanh nan 2.3 -> nan nan atanh1012 atanh nan inf -> 0.0 1.5707963267948966 ignore-real-sign atanh1013 atanh nan nan -> nan nan atanh1014 atanh 0.0 -0.0 -> 0.0 -0.0 atanh1015 atanh 1.0 -0.0 -> inf -0.0 divide-by-zero atanh1016 atanh 0.0 -inf -> 0.0 -1.5707963267948966 atanh1017 atanh 2.3 -inf -> 0.0 -1.5707963267948966 atanh1018 atanh inf -0.0 -> 0.0 -1.5707963267948966 atanh1019 atanh inf -2.3 -> 0.0 -1.5707963267948966 atanh1020 atanh inf -inf -> 0.0 -1.5707963267948966 atanh1021 atanh nan -0.0 -> nan nan atanh1022 atanh nan -2.3 -> nan nan atanh1023 atanh nan -inf -> 0.0 -1.5707963267948966 ignore-real-sign atanh1024 atanh -0.0 -0.0 -> -0.0 -0.0 atanh1025 atanh -0.0 nan -> -0.0 nan atanh1026 atanh -1.0 -0.0 -> -inf -0.0 divide-by-zero atanh1027 atanh -0.0 -inf -> -0.0 -1.5707963267948966 atanh1028 atanh -2.3 -inf -> -0.0 -1.5707963267948966 atanh1029 atanh -2.3 nan -> nan nan atanh1030 atanh -inf -0.0 -> -0.0 -1.5707963267948966 atanh1031 atanh -inf -2.3 -> -0.0 -1.5707963267948966 atanh1032 atanh -inf -inf -> -0.0 -1.5707963267948966 atanh1033 atanh -inf nan -> -0.0 nan atanh1034 atanh -0.0 0.0 -> -0.0 0.0 atanh1035 atanh -1.0 0.0 -> -inf 0.0 divide-by-zero atanh1036 atanh -0.0 inf -> -0.0 1.5707963267948966 atanh1037 atanh -2.3 inf -> -0.0 1.5707963267948966 atanh1038 atanh -inf 0.0 -> -0.0 1.5707963267948966 atanh1039 atanh -inf 2.3 -> -0.0 1.5707963267948966 atanh1040 atanh -inf inf -> -0.0 1.5707963267948966 ---------------------------- -- log: Natural logarithm -- ---------------------------- log0000 log 1.0 0.0 -> 0.0 0.0 log0001 log 1.0 -0.0 -> 0.0 -0.0 log0002 log -1.0 0.0 -> 0.0 3.1415926535897931 log0003 log -1.0 -0.0 -> 0.0 -3.1415926535897931 -- values along both sides of real axis log0010 log -9.8813129168249309e-324 0.0 -> -743.74692474082133 3.1415926535897931 log0011 log -9.8813129168249309e-324 -0.0 -> -743.74692474082133 -3.1415926535897931 log0012 log -1e-305 0.0 -> -702.28845336318398 3.1415926535897931 log0013 log -1e-305 -0.0 -> -702.28845336318398 -3.1415926535897931 log0014 log -1e-150 0.0 -> -345.38776394910684 3.1415926535897931 log0015 log -1e-150 -0.0 -> -345.38776394910684 -3.1415926535897931 log0016 log -9.9999999999999998e-17 0.0 -> -36.841361487904734 3.1415926535897931 log0017 log -9.9999999999999998e-17 -0.0 -> -36.841361487904734 -3.1415926535897931 log0018 log -0.001 0.0 -> -6.9077552789821368 3.1415926535897931 log0019 log -0.001 -0.0 -> -6.9077552789821368 -3.1415926535897931 log0020 log -0.57899999999999996 0.0 -> -0.54645280140914188 3.1415926535897931 log0021 log -0.57899999999999996 -0.0 -> -0.54645280140914188 -3.1415926535897931 log0022 log -0.99999999999999989 0.0 -> -1.1102230246251565e-16 3.1415926535897931 log0023 log -0.99999999999999989 -0.0 -> -1.1102230246251565e-16 -3.1415926535897931 log0024 log -1.0000000000000002 0.0 -> 2.2204460492503128e-16 3.1415926535897931 log0025 log -1.0000000000000002 -0.0 -> 2.2204460492503128e-16 -3.1415926535897931 log0026 log -1.0009999999999999 0.0 -> 0.00099950033308342321 3.1415926535897931 log0027 log -1.0009999999999999 -0.0 -> 0.00099950033308342321 -3.1415926535897931 log0028 log -2.0 0.0 -> 0.69314718055994529 3.1415926535897931 log0029 log -2.0 -0.0 -> 0.69314718055994529 -3.1415926535897931 log0030 log -23.0 0.0 -> 3.1354942159291497 3.1415926535897931 log0031 log -23.0 -0.0 -> 3.1354942159291497 -3.1415926535897931 log0032 log -10000000000000000.0 0.0 -> 36.841361487904734 3.1415926535897931 log0033 log -10000000000000000.0 -0.0 -> 36.841361487904734 -3.1415926535897931 log0034 log -9.9999999999999998e+149 0.0 -> 345.38776394910684 3.1415926535897931 log0035 log -9.9999999999999998e+149 -0.0 -> 345.38776394910684 -3.1415926535897931 log0036 log -1.0000000000000001e+299 0.0 -> 688.47294280521965 3.1415926535897931 log0037 log -1.0000000000000001e+299 -0.0 -> 688.47294280521965 -3.1415926535897931 log0038 log 9.8813129168249309e-324 0.0 -> -743.74692474082133 0.0 log0039 log 9.8813129168249309e-324 -0.0 -> -743.74692474082133 -0.0 log0040 log 1e-305 0.0 -> -702.28845336318398 0.0 log0041 log 1e-305 -0.0 -> -702.28845336318398 -0.0 log0042 log 1e-150 0.0 -> -345.38776394910684 0.0 log0043 log 1e-150 -0.0 -> -345.38776394910684 -0.0 log0044 log 9.9999999999999998e-17 0.0 -> -36.841361487904734 0.0 log0045 log 9.9999999999999998e-17 -0.0 -> -36.841361487904734 -0.0 log0046 log 0.001 0.0 -> -6.9077552789821368 0.0 log0047 log 0.001 -0.0 -> -6.9077552789821368 -0.0 log0048 log 0.57899999999999996 0.0 -> -0.54645280140914188 0.0 log0049 log 0.57899999999999996 -0.0 -> -0.54645280140914188 -0.0 log0050 log 0.99999999999999989 0.0 -> -1.1102230246251565e-16 0.0 log0051 log 0.99999999999999989 -0.0 -> -1.1102230246251565e-16 -0.0 log0052 log 1.0000000000000002 0.0 -> 2.2204460492503128e-16 0.0 log0053 log 1.0000000000000002 -0.0 -> 2.2204460492503128e-16 -0.0 log0054 log 1.0009999999999999 0.0 -> 0.00099950033308342321 0.0 log0055 log 1.0009999999999999 -0.0 -> 0.00099950033308342321 -0.0 log0056 log 2.0 0.0 -> 0.69314718055994529 0.0 log0057 log 2.0 -0.0 -> 0.69314718055994529 -0.0 log0058 log 23.0 0.0 -> 3.1354942159291497 0.0 log0059 log 23.0 -0.0 -> 3.1354942159291497 -0.0 log0060 log 10000000000000000.0 0.0 -> 36.841361487904734 0.0 log0061 log 10000000000000000.0 -0.0 -> 36.841361487904734 -0.0 log0062 log 9.9999999999999998e+149 0.0 -> 345.38776394910684 0.0 log0063 log 9.9999999999999998e+149 -0.0 -> 345.38776394910684 -0.0 log0064 log 1.0000000000000001e+299 0.0 -> 688.47294280521965 0.0 log0065 log 1.0000000000000001e+299 -0.0 -> 688.47294280521965 -0.0 -- random inputs log0066 log -1.9830454945186191e-16 -2.0334448025673346 -> 0.70973130194329803 -1.5707963267948968 log0067 log -0.96745853024741857 -0.84995816228299692 -> 0.25292811398722387 -2.4207570438536905 log0068 log -0.1603644313948418 -0.2929942111041835 -> -1.0965857872427374 -2.0715870859971419 log0069 log -0.15917913168438699 -0.25238799251132177 -> -1.2093477313249901 -2.1334784232033863 log0070 log -0.68907818535078802 -3.0693105853476346 -> 1.1460398629184565 -1.7916403813913211 log0071 log -17.268133447565589 6.8165120014604756 -> 2.9212694465974836 2.7656245081603164 log0072 log -1.7153894479690328 26.434055372802636 -> 3.2767542953718003 1.6355986276341734 log0073 log -8.0456794648936578e-06 0.19722758057570208 -> -1.6233969848296075 1.5708371206810101 log0074 log -2.4306442691323173 0.6846919750700996 -> 0.92633592001969589 2.8670160576718331 log0075 log -3.5488049250888194 0.45324040643185254 -> 1.2747008374256426 3.0145640007885111 log0076 log 0.18418516851510189 -0.26062518836212617 -> -1.1421287121940344 -0.95558440841183434 log0077 log 2.7124837795638399 -13.148769067133387 -> 2.5971659975706802 -1.3673583045209439 log0078 log 3.6521275476169149e-13 -3.7820543023170673e-05 -> -10.182658136741569 -1.5707963171384316 log0079 log 5.0877545813862239 -1.2834978326786852 -> 1.6576856213076328 -0.24711583497738485 log0080 log 0.26477986808461512 -0.67659001194187429 -> -0.31944085207999973 -1.197773671987121 log0081 log 0.0014754261398071962 5.3514691608205442 -> 1.6773711707153829 1.5705206219261802 log0082 log 0.29667334462157885 0.00020056045042584795 -> -1.2151233667079588 0.00067603114168689204 log0083 log 0.82104233671099425 3.9005387130133102 -> 1.3827918965299593 1.3633304701848363 log0084 log 0.27268135358180667 124.42088110945804 -> 4.8236724223559229 1.5686047258789015 log0085 log 0.0026286959168267485 0.47795808180573013 -> -0.73821712137809126 1.5652965360960087 -- values near infinity log0100 log 1.0512025744003172e+308 7.2621669750664611e+307 -> 709.44123967814494 0.60455434048332968 log0101 log 5.5344249034372126e+307 -1.2155859158431275e+308 -> 709.48562300345679 -1.143553056717973 log0102 log -1.3155575403469408e+308 1.1610793541663864e+308 -> 709.75847809546428 2.41848796504974 log0103 log -1.632366720973235e+308 -1.54299446211448e+308 -> 710.00545236515586 -2.3843326028455087 log0104 log 0.0 5.9449276692327712e+307 -> 708.67616191258526 1.5707963267948966 log0105 log -0.0 1.1201850459025692e+308 -> 709.30970253338171 1.5707963267948966 log0106 log 0.0 -1.6214225933466528e+308 -> 709.6795125501086 -1.5707963267948966 log0107 log -0.0 -1.7453269791591058e+308 -> 709.75315056087379 -1.5707963267948966 log0108 log 1.440860577601428e+308 0.0 -> 709.56144920058262 0.0 log0109 log 1.391515176148282e+308 -0.0 -> 709.52660185041327 -0.0 log0110 log -1.201354401295296e+308 0.0 -> 709.37965823023956 3.1415926535897931 log0111 log -1.6704337825976804e+308 -0.0 -> 709.70929198492399 -3.1415926535897931 log0112 log 7.2276974655190223e+307 7.94879711369164 -> 708.87154406512104 1.0997689307850458e-307 log0113 log 1.1207859593716076e+308 -6.1956200868221147 -> 709.31023883080104 -5.5279244310803286e-308 log0114 log -4.6678933874471045e+307 9.947107893220382 -> 708.43433142431388 3.1415926535897931 log0115 log -1.5108012453950142e+308 -5.3117197179375619 -> 709.60884877835008 -3.1415926535897931 log0116 log 7.4903750871504435 1.5320703776626352e+308 -> 709.62282865085137 1.5707963267948966 log0117 log 5.9760325525654778 -8.0149473997349123e+307 -> 708.97493177248396 -1.5707963267948966 log0118 log -7.880194206386629 1.7861845814767441e+308 -> 709.77629046837137 1.5707963267948966 log0119 log -9.886438993852865 -6.19235781080747e+307 -> 708.71693946977302 -1.5707963267948966 -- values near 0 log0120 log 2.2996867579227779e-308 6.7861840770939125e-312 -> -708.36343567717392 0.00029509166223339815 log0121 log 6.9169190417774516e-323 -9.0414013188948118e-322 -> -739.22766796468386 -1.4944423210001669 log0122 log -1.5378064962914011e-316 1.8243628389354635e-310 -> -713.20014803142965 1.5707971697228842 log0123 log -2.3319898483706837e-321 -2.2358763941866371e-313 -> -719.9045008332522 -1.570796337224766 log0124 log 0.0 3.872770101081121e-315 -> -723.96033425374401 1.5707963267948966 log0125 log -0.0 9.6342800939043076e-322 -> -739.16707236281752 1.5707963267948966 log0126 log 0.0 -2.266099393427834e-308 -> -708.37814861757965 -1.5707963267948966 log0127 log -0.0 -2.1184695673766626e-315 -> -724.56361036731812 -1.5707963267948966 log0128 log 1.1363509854348671e-322 0.0 -> -741.30457770545206 0.0 log0129 log 3.5572726500569751e-322 -0.0 -> -740.16340580236522 -0.0 log0130 log -2.3696071074040593e-310 0.0 -> -712.93865466421641 3.1415926535897931 log0131 log -2.813283897266934e-317 -0.0 -> -728.88512203138862 -3.1415926535897931 -- values near the unit circle log0200 log -0.59999999999999998 0.80000000000000004 -> 2.2204460492503132e-17 2.2142974355881808 log0201 log 0.79999999999999993 0.60000000000000009 -> 6.1629758220391547e-33 0.64350110879328448 -- special values log1000 log -0.0 0.0 -> -inf 3.1415926535897931 divide-by-zero log1001 log 0.0 0.0 -> -inf 0.0 divide-by-zero log1002 log 0.0 inf -> inf 1.5707963267948966 log1003 log 2.3 inf -> inf 1.5707963267948966 log1004 log -0.0 inf -> inf 1.5707963267948966 log1005 log -2.3 inf -> inf 1.5707963267948966 log1006 log 0.0 nan -> nan nan log1007 log 2.3 nan -> nan nan log1008 log -0.0 nan -> nan nan log1009 log -2.3 nan -> nan nan log1010 log -inf 0.0 -> inf 3.1415926535897931 log1011 log -inf 2.3 -> inf 3.1415926535897931 log1012 log inf 0.0 -> inf 0.0 log1013 log inf 2.3 -> inf 0.0 log1014 log -inf inf -> inf 2.3561944901923448 log1015 log inf inf -> inf 0.78539816339744828 log1016 log inf nan -> inf nan log1017 log -inf nan -> inf nan log1018 log nan 0.0 -> nan nan log1019 log nan 2.3 -> nan nan log1020 log nan inf -> inf nan log1021 log nan nan -> nan nan log1022 log -0.0 -0.0 -> -inf -3.1415926535897931 divide-by-zero log1023 log 0.0 -0.0 -> -inf -0.0 divide-by-zero log1024 log 0.0 -inf -> inf -1.5707963267948966 log1025 log 2.3 -inf -> inf -1.5707963267948966 log1026 log -0.0 -inf -> inf -1.5707963267948966 log1027 log -2.3 -inf -> inf -1.5707963267948966 log1028 log -inf -0.0 -> inf -3.1415926535897931 log1029 log -inf -2.3 -> inf -3.1415926535897931 log1030 log inf -0.0 -> inf -0.0 log1031 log inf -2.3 -> inf -0.0 log1032 log -inf -inf -> inf -2.3561944901923448 log1033 log inf -inf -> inf -0.78539816339744828 log1034 log nan -0.0 -> nan nan log1035 log nan -2.3 -> nan nan log1036 log nan -inf -> inf nan ------------------------------ -- log10: Logarithm base 10 -- ------------------------------ logt0000 log10 1.0 0.0 -> 0.0 0.0 logt0001 log10 1.0 -0.0 -> 0.0 -0.0 logt0002 log10 -1.0 0.0 -> 0.0 1.3643763538418414 logt0003 log10 -1.0 -0.0 -> 0.0 -1.3643763538418414 -- values along both sides of real axis logt0010 log10 -9.8813129168249309e-324 0.0 -> -323.0051853474518 1.3643763538418414 logt0011 log10 -9.8813129168249309e-324 -0.0 -> -323.0051853474518 -1.3643763538418414 logt0012 log10 -1e-305 0.0 -> -305.0 1.3643763538418414 logt0013 log10 -1e-305 -0.0 -> -305.0 -1.3643763538418414 logt0014 log10 -1e-150 0.0 -> -150.0 1.3643763538418414 logt0015 log10 -1e-150 -0.0 -> -150.0 -1.3643763538418414 logt0016 log10 -9.9999999999999998e-17 0.0 -> -16.0 1.3643763538418414 logt0017 log10 -9.9999999999999998e-17 -0.0 -> -16.0 -1.3643763538418414 logt0018 log10 -0.001 0.0 -> -3.0 1.3643763538418414 logt0019 log10 -0.001 -0.0 -> -3.0 -1.3643763538418414 logt0020 log10 -0.57899999999999996 0.0 -> -0.23732143627256383 1.3643763538418414 logt0021 log10 -0.57899999999999996 -0.0 -> -0.23732143627256383 -1.3643763538418414 logt0022 log10 -0.99999999999999989 0.0 -> -4.821637332766436e-17 1.3643763538418414 logt0023 log10 -0.99999999999999989 -0.0 -> -4.821637332766436e-17 -1.3643763538418414 logt0024 log10 -1.0000000000000002 0.0 -> 9.6432746655328696e-17 1.3643763538418414 logt0025 log10 -1.0000000000000002 -0.0 -> 9.6432746655328696e-17 -1.3643763538418414 logt0026 log10 -1.0009999999999999 0.0 -> 0.0004340774793185929 1.3643763538418414 logt0027 log10 -1.0009999999999999 -0.0 -> 0.0004340774793185929 -1.3643763538418414 logt0028 log10 -2.0 0.0 -> 0.3010299956639812 1.3643763538418414 logt0029 log10 -2.0 -0.0 -> 0.3010299956639812 -1.3643763538418414 logt0030 log10 -23.0 0.0 -> 1.3617278360175928 1.3643763538418414 logt0031 log10 -23.0 -0.0 -> 1.3617278360175928 -1.3643763538418414 logt0032 log10 -10000000000000000.0 0.0 -> 16.0 1.3643763538418414 logt0033 log10 -10000000000000000.0 -0.0 -> 16.0 -1.3643763538418414 logt0034 log10 -9.9999999999999998e+149 0.0 -> 150.0 1.3643763538418414 logt0035 log10 -9.9999999999999998e+149 -0.0 -> 150.0 -1.3643763538418414 logt0036 log10 -1.0000000000000001e+299 0.0 -> 299.0 1.3643763538418414 logt0037 log10 -1.0000000000000001e+299 -0.0 -> 299.0 -1.3643763538418414 logt0038 log10 9.8813129168249309e-324 0.0 -> -323.0051853474518 0.0 logt0039 log10 9.8813129168249309e-324 -0.0 -> -323.0051853474518 -0.0 logt0040 log10 1e-305 0.0 -> -305.0 0.0 logt0041 log10 1e-305 -0.0 -> -305.0 -0.0 logt0042 log10 1e-150 0.0 -> -150.0 0.0 logt0043 log10 1e-150 -0.0 -> -150.0 -0.0 logt0044 log10 9.9999999999999998e-17 0.0 -> -16.0 0.0 logt0045 log10 9.9999999999999998e-17 -0.0 -> -16.0 -0.0 logt0046 log10 0.001 0.0 -> -3.0 0.0 logt0047 log10 0.001 -0.0 -> -3.0 -0.0 logt0048 log10 0.57899999999999996 0.0 -> -0.23732143627256383 0.0 logt0049 log10 0.57899999999999996 -0.0 -> -0.23732143627256383 -0.0 logt0050 log10 0.99999999999999989 0.0 -> -4.821637332766436e-17 0.0 logt0051 log10 0.99999999999999989 -0.0 -> -4.821637332766436e-17 -0.0 logt0052 log10 1.0000000000000002 0.0 -> 9.6432746655328696e-17 0.0 logt0053 log10 1.0000000000000002 -0.0 -> 9.6432746655328696e-17 -0.0 logt0054 log10 1.0009999999999999 0.0 -> 0.0004340774793185929 0.0 logt0055 log10 1.0009999999999999 -0.0 -> 0.0004340774793185929 -0.0 logt0056 log10 2.0 0.0 -> 0.3010299956639812 0.0 logt0057 log10 2.0 -0.0 -> 0.3010299956639812 -0.0 logt0058 log10 23.0 0.0 -> 1.3617278360175928 0.0 logt0059 log10 23.0 -0.0 -> 1.3617278360175928 -0.0 logt0060 log10 10000000000000000.0 0.0 -> 16.0 0.0 logt0061 log10 10000000000000000.0 -0.0 -> 16.0 -0.0 logt0062 log10 9.9999999999999998e+149 0.0 -> 150.0 0.0 logt0063 log10 9.9999999999999998e+149 -0.0 -> 150.0 -0.0 logt0064 log10 1.0000000000000001e+299 0.0 -> 299.0 0.0 logt0065 log10 1.0000000000000001e+299 -0.0 -> 299.0 -0.0 -- random inputs logt0066 log10 -1.9830454945186191e-16 -2.0334448025673346 -> 0.30823238806798503 -0.68218817692092071 logt0067 log10 -0.96745853024741857 -0.84995816228299692 -> 0.10984528422284802 -1.051321426174086 logt0068 log10 -0.1603644313948418 -0.2929942111041835 -> -0.47624115633305419 -0.89967884023059597 logt0069 log10 -0.15917913168438699 -0.25238799251132177 -> -0.52521304641665956 -0.92655790645688119 logt0070 log10 -0.68907818535078802 -3.0693105853476346 -> 0.4977187885066448 -0.77809953119328823 logt0071 log10 -17.268133447565589 6.8165120014604756 -> 1.2686912008098534 1.2010954629104202 logt0072 log10 -1.7153894479690328 26.434055372802636 -> 1.423076309032751 0.71033145859005309 logt0073 log10 -8.0456794648936578e-06 0.19722758057570208 -> -0.70503235244987561 0.68220589348055516 logt0074 log10 -2.4306442691323173 0.6846919750700996 -> 0.40230257845332595 1.2451292533748923 logt0075 log10 -3.5488049250888194 0.45324040643185254 -> 0.55359553977141063 1.3092085108866405 logt0076 log10 0.18418516851510189 -0.26062518836212617 -> -0.49602019732913638 -0.41500503556604301 logt0077 log10 2.7124837795638399 -13.148769067133387 -> 1.1279348613317008 -0.59383616643803216 logt0078 log10 3.6521275476169149e-13 -3.7820543023170673e-05 -> -4.4222722398941112 -0.68218817272717114 logt0079 log10 5.0877545813862239 -1.2834978326786852 -> 0.71992371806426847 -0.10732104352159283 logt0080 log10 0.26477986808461512 -0.67659001194187429 -> -0.13873139935281681 -0.52018649631300229 logt0081 log10 0.0014754261398071962 5.3514691608205442 -> 0.72847304354528819 0.6820684398178033 logt0082 log10 0.29667334462157885 0.00020056045042584795 -> -0.52772137299296806 0.00029359659442937261 logt0083 log10 0.82104233671099425 3.9005387130133102 -> 0.60053889028349361 0.59208690021184018 logt0084 log10 0.27268135358180667 124.42088110945804 -> 2.094894315538069 0.68123637673656989 logt0085 log10 0.0026286959168267485 0.47795808180573013 -> -0.32060362226100814 0.67979964816877081 -- values near infinity logt0100 log10 1.0512025744003172e+308 7.2621669750664611e+307 -> 308.10641562682065 0.26255461408256975 logt0101 log10 5.5344249034372126e+307 -1.2155859158431275e+308 -> 308.12569106009209 -0.496638782296212 logt0102 log10 -1.3155575403469408e+308 1.1610793541663864e+308 -> 308.24419052091019 1.0503359777705266 logt0103 log10 -1.632366720973235e+308 -1.54299446211448e+308 -> 308.3514500834093 -1.0355024924378222 logt0104 log10 0.0 5.9449276692327712e+307 -> 307.77414657501117 0.68218817692092071 logt0105 log10 -0.0 1.1201850459025692e+308 -> 308.04928977068465 0.68218817692092071 logt0106 log10 0.0 -1.6214225933466528e+308 -> 308.20989622030174 -0.68218817692092071 logt0107 log10 -0.0 -1.7453269791591058e+308 -> 308.24187680203539 -0.68218817692092071 logt0108 log10 1.440860577601428e+308 0.0 -> 308.15862195908755 0.0 logt0109 log10 1.391515176148282e+308 -0.0 -> 308.14348794720007 -0.0 logt0110 log10 -1.201354401295296e+308 0.0 -> 308.07967114380773 1.3643763538418414 logt0111 log10 -1.6704337825976804e+308 -0.0 -> 308.22282926451624 -1.3643763538418414 logt0112 log10 7.2276974655190223e+307 7.94879711369164 -> 307.85899996571993 4.7762357800858463e-308 logt0113 log10 1.1207859593716076e+308 -6.1956200868221147 -> 308.04952268169455 -2.4007470767963597e-308 logt0114 log10 -4.6678933874471045e+307 9.947107893220382 -> 307.66912092839902 1.3643763538418414 logt0115 log10 -1.5108012453950142e+308 -5.3117197179375619 -> 308.1792073341565 -1.3643763538418414 logt0116 log10 7.4903750871504435 1.5320703776626352e+308 -> 308.18527871564157 0.68218817692092071 logt0117 log10 5.9760325525654778 -8.0149473997349123e+307 -> 307.90390067652424 -0.68218817692092071 logt0118 log10 -7.880194206386629 1.7861845814767441e+308 -> 308.25192633617331 0.68218817692092071 logt0119 log10 -9.886438993852865 -6.19235781080747e+307 -> 307.79185604308338 -0.68218817692092071 -- values near 0 logt0120 log10 2.2996867579227779e-308 6.7861840770939125e-312 -> -307.63833129662572 0.00012815668056362305 logt0121 log10 6.9169190417774516e-323 -9.0414013188948118e-322 -> -321.04249706727148 -0.64902805353306059 logt0122 log10 -1.5378064962914011e-316 1.8243628389354635e-310 -> -309.73888878263222 0.68218854299989429 logt0123 log10 -2.3319898483706837e-321 -2.2358763941866371e-313 -> -312.65055220919641 -0.68218818145055538 logt0124 log10 0.0 3.872770101081121e-315 -> -314.41197828323476 0.68218817692092071 logt0125 log10 -0.0 9.6342800939043076e-322 -> -321.01618073175331 0.68218817692092071 logt0126 log10 0.0 -2.266099393427834e-308 -> -307.64472104545649 -0.68218817692092071 logt0127 log10 -0.0 -2.1184695673766626e-315 -> -314.67397777042407 -0.68218817692092071 logt0128 log10 1.1363509854348671e-322 0.0 -> -321.94448750709819 0.0 logt0129 log10 3.5572726500569751e-322 -0.0 -> -321.44888284668451 -0.0 logt0130 log10 -2.3696071074040593e-310 0.0 -> -309.62532365619722 1.3643763538418414 logt0131 log10 -2.813283897266934e-317 -0.0 -> -316.55078643961042 -1.3643763538418414 -- values near the unit circle logt0200 log10 -0.59999999999999998 0.80000000000000004 -> 9.6432746655328709e-18 0.96165715756846815 logt0201 log10 0.79999999999999993 0.60000000000000009 -> 2.6765463916147622e-33 0.2794689806475476 -- special values logt1000 log10 -0.0 0.0 -> -inf 1.3643763538418414 divide-by-zero logt1001 log10 0.0 0.0 -> -inf 0.0 divide-by-zero logt1002 log10 0.0 inf -> inf 0.68218817692092071 logt1003 log10 2.3 inf -> inf 0.68218817692092071 logt1004 log10 -0.0 inf -> inf 0.68218817692092071 logt1005 log10 -2.3 inf -> inf 0.68218817692092071 logt1006 log10 0.0 nan -> nan nan logt1007 log10 2.3 nan -> nan nan logt1008 log10 -0.0 nan -> nan nan logt1009 log10 -2.3 nan -> nan nan logt1010 log10 -inf 0.0 -> inf 1.3643763538418414 logt1011 log10 -inf 2.3 -> inf 1.3643763538418414 logt1012 log10 inf 0.0 -> inf 0.0 logt1013 log10 inf 2.3 -> inf 0.0 logt1014 log10 -inf inf -> inf 1.0232822653813811 logt1015 log10 inf inf -> inf 0.34109408846046035 logt1016 log10 inf nan -> inf nan logt1017 log10 -inf nan -> inf nan logt1018 log10 nan 0.0 -> nan nan logt1019 log10 nan 2.3 -> nan nan logt1020 log10 nan inf -> inf nan logt1021 log10 nan nan -> nan nan logt1022 log10 -0.0 -0.0 -> -inf -1.3643763538418414 divide-by-zero logt1023 log10 0.0 -0.0 -> -inf -0.0 divide-by-zero logt1024 log10 0.0 -inf -> inf -0.68218817692092071 logt1025 log10 2.3 -inf -> inf -0.68218817692092071 logt1026 log10 -0.0 -inf -> inf -0.68218817692092071 logt1027 log10 -2.3 -inf -> inf -0.68218817692092071 logt1028 log10 -inf -0.0 -> inf -1.3643763538418414 logt1029 log10 -inf -2.3 -> inf -1.3643763538418414 logt1030 log10 inf -0.0 -> inf -0.0 logt1031 log10 inf -2.3 -> inf -0.0 logt1032 log10 -inf -inf -> inf -1.0232822653813811 logt1033 log10 inf -inf -> inf -0.34109408846046035 logt1034 log10 nan -0.0 -> nan nan logt1035 log10 nan -2.3 -> nan nan logt1036 log10 nan -inf -> inf nan ----------------------- -- sqrt: Square root -- ----------------------- -- zeros sqrt0000 sqrt 0.0 0.0 -> 0.0 0.0 sqrt0001 sqrt 0.0 -0.0 -> 0.0 -0.0 sqrt0002 sqrt -0.0 0.0 -> 0.0 0.0 sqrt0003 sqrt -0.0 -0.0 -> 0.0 -0.0 -- values along both sides of real axis sqrt0010 sqrt -9.8813129168249309e-324 0.0 -> 0.0 3.1434555694052576e-162 sqrt0011 sqrt -9.8813129168249309e-324 -0.0 -> 0.0 -3.1434555694052576e-162 sqrt0012 sqrt -1e-305 0.0 -> 0.0 3.1622776601683791e-153 sqrt0013 sqrt -1e-305 -0.0 -> 0.0 -3.1622776601683791e-153 sqrt0014 sqrt -1e-150 0.0 -> 0.0 9.9999999999999996e-76 sqrt0015 sqrt -1e-150 -0.0 -> 0.0 -9.9999999999999996e-76 sqrt0016 sqrt -9.9999999999999998e-17 0.0 -> 0.0 1e-08 sqrt0017 sqrt -9.9999999999999998e-17 -0.0 -> 0.0 -1e-08 sqrt0018 sqrt -0.001 0.0 -> 0.0 0.031622776601683791 sqrt0019 sqrt -0.001 -0.0 -> 0.0 -0.031622776601683791 sqrt0020 sqrt -0.57899999999999996 0.0 -> 0.0 0.76092049518987193 sqrt0021 sqrt -0.57899999999999996 -0.0 -> 0.0 -0.76092049518987193 sqrt0022 sqrt -0.99999999999999989 0.0 -> 0.0 0.99999999999999989 sqrt0023 sqrt -0.99999999999999989 -0.0 -> 0.0 -0.99999999999999989 sqrt0024 sqrt -1.0000000000000002 0.0 -> 0.0 1.0 sqrt0025 sqrt -1.0000000000000002 -0.0 -> 0.0 -1.0 sqrt0026 sqrt -1.0009999999999999 0.0 -> 0.0 1.000499875062461 sqrt0027 sqrt -1.0009999999999999 -0.0 -> 0.0 -1.000499875062461 sqrt0028 sqrt -2.0 0.0 -> 0.0 1.4142135623730951 sqrt0029 sqrt -2.0 -0.0 -> 0.0 -1.4142135623730951 sqrt0030 sqrt -23.0 0.0 -> 0.0 4.7958315233127191 sqrt0031 sqrt -23.0 -0.0 -> 0.0 -4.7958315233127191 sqrt0032 sqrt -10000000000000000.0 0.0 -> 0.0 100000000.0 sqrt0033 sqrt -10000000000000000.0 -0.0 -> 0.0 -100000000.0 sqrt0034 sqrt -9.9999999999999998e+149 0.0 -> 0.0 9.9999999999999993e+74 sqrt0035 sqrt -9.9999999999999998e+149 -0.0 -> 0.0 -9.9999999999999993e+74 sqrt0036 sqrt -1.0000000000000001e+299 0.0 -> 0.0 3.1622776601683796e+149 sqrt0037 sqrt -1.0000000000000001e+299 -0.0 -> 0.0 -3.1622776601683796e+149 sqrt0038 sqrt 9.8813129168249309e-324 0.0 -> 3.1434555694052576e-162 0.0 sqrt0039 sqrt 9.8813129168249309e-324 -0.0 -> 3.1434555694052576e-162 -0.0 sqrt0040 sqrt 1e-305 0.0 -> 3.1622776601683791e-153 0.0 sqrt0041 sqrt 1e-305 -0.0 -> 3.1622776601683791e-153 -0.0 sqrt0042 sqrt 1e-150 0.0 -> 9.9999999999999996e-76 0.0 sqrt0043 sqrt 1e-150 -0.0 -> 9.9999999999999996e-76 -0.0 sqrt0044 sqrt 9.9999999999999998e-17 0.0 -> 1e-08 0.0 sqrt0045 sqrt 9.9999999999999998e-17 -0.0 -> 1e-08 -0.0 sqrt0046 sqrt 0.001 0.0 -> 0.031622776601683791 0.0 sqrt0047 sqrt 0.001 -0.0 -> 0.031622776601683791 -0.0 sqrt0048 sqrt 0.57899999999999996 0.0 -> 0.76092049518987193 0.0 sqrt0049 sqrt 0.57899999999999996 -0.0 -> 0.76092049518987193 -0.0 sqrt0050 sqrt 0.99999999999999989 0.0 -> 0.99999999999999989 0.0 sqrt0051 sqrt 0.99999999999999989 -0.0 -> 0.99999999999999989 -0.0 sqrt0052 sqrt 1.0000000000000002 0.0 -> 1.0 0.0 sqrt0053 sqrt 1.0000000000000002 -0.0 -> 1.0 -0.0 sqrt0054 sqrt 1.0009999999999999 0.0 -> 1.000499875062461 0.0 sqrt0055 sqrt 1.0009999999999999 -0.0 -> 1.000499875062461 -0.0 sqrt0056 sqrt 2.0 0.0 -> 1.4142135623730951 0.0 sqrt0057 sqrt 2.0 -0.0 -> 1.4142135623730951 -0.0 sqrt0058 sqrt 23.0 0.0 -> 4.7958315233127191 0.0 sqrt0059 sqrt 23.0 -0.0 -> 4.7958315233127191 -0.0 sqrt0060 sqrt 10000000000000000.0 0.0 -> 100000000.0 0.0 sqrt0061 sqrt 10000000000000000.0 -0.0 -> 100000000.0 -0.0 sqrt0062 sqrt 9.9999999999999998e+149 0.0 -> 9.9999999999999993e+74 0.0 sqrt0063 sqrt 9.9999999999999998e+149 -0.0 -> 9.9999999999999993e+74 -0.0 sqrt0064 sqrt 1.0000000000000001e+299 0.0 -> 3.1622776601683796e+149 0.0 sqrt0065 sqrt 1.0000000000000001e+299 -0.0 -> 3.1622776601683796e+149 -0.0 -- random inputs sqrt0100 sqrt -0.34252542541549913 -223039880.15076211 -> 10560.300180587592 -10560.300196805192 sqrt0101 sqrt -0.88790791393018909 -5.3307751730827402 -> 1.5027154613689004 -1.7737140896343291 sqrt0102 sqrt -113916.89291310767 -0.018143374626153858 -> 2.6877817875351178e-05 -337.51576691038952 sqrt0103 sqrt -0.63187172386197121 -0.26293913366617694 -> 0.16205707495266153 -0.81125471918761971 sqrt0104 sqrt -0.058185169308906215 -2.3548312990430991 -> 1.0717660342420072 -1.0985752598086966 sqrt0105 sqrt -1.0580584765935896 0.14400319259151736 -> 0.069837489270111242 1.030987755262468 sqrt0106 sqrt -1.1667595947504932 0.11159711473953678 -> 0.051598531319315251 1.0813981705111229 sqrt0107 sqrt -0.5123728411449906 0.026175433648339085 -> 0.018278026262418718 0.71603556293597614 sqrt0108 sqrt -3.7453400060067228 1.0946500314809635 -> 0.27990088541692498 1.9554243814742367 sqrt0109 sqrt -0.0027736121575097673 1.0367943000839817 -> 0.71903560338719175 0.72096172651250545 sqrt0110 sqrt 1501.2559699453188 -1.1997325207283589 -> 38.746047664730959 -0.015481998720355024 sqrt0111 sqrt 1.4830075326850578 -0.64100878436755349 -> 1.244712815741096 -0.25749264258434584 sqrt0112 sqrt 0.095395618499734602 -0.48226565701639595 -> 0.54175904053472879 -0.44509239434231551 sqrt0113 sqrt 0.50109185681863277 -0.54054037379892561 -> 0.7868179858332387 -0.34349772344520979 sqrt0114 sqrt 0.98779807595367897 -0.00019848758437225191 -> 0.99388031770665153 -9.9854872279921968e-05 sqrt0115 sqrt 11.845472380792259 0.0010051104581506761 -> 3.4417252072345397 0.00014601840612346451 sqrt0116 sqrt 2.3558249686735975 0.25605157371744403 -> 1.5371278477386647 0.083288964575761404 sqrt0117 sqrt 0.77584894123159098 1.0496420627016076 -> 1.0200744386390885 0.51449287568756552 sqrt0118 sqrt 1.8961715669604893 0.34940793467158854 -> 1.3827991781411615 0.12634080935066902 sqrt0119 sqrt 0.96025378316565801 0.69573224860140515 -> 1.0358710342209998 0.33581991658093457 -- values near 0 sqrt0120 sqrt 7.3577938365086866e-313 8.1181408465112743e-319 -> 8.5777583531543516e-157 4.732087634251168e-163 sqrt0121 sqrt 1.2406883874892108e-310 -5.1210133324269776e-312 -> 1.1140990057468052e-155 -2.2982756945349973e-157 sqrt0122 sqrt -7.1145453001139502e-322 2.9561379244703735e-314 -> 1.2157585807480286e-157 1.2157586100077242e-157 sqrt0123 sqrt -4.9963244206801218e-314 -8.4718424423690227e-319 -> 1.8950582312540437e-162 -2.2352459419578971e-157 sqrt0124 sqrt 0.0 7.699553609385195e-318 -> 1.9620848107797476e-159 1.9620848107797476e-159 sqrt0125 sqrt -0.0 3.3900826606499415e-309 -> 4.1170879639922327e-155 4.1170879639922327e-155 sqrt0126 sqrt 0.0 -9.8907989772250828e-319 -> 7.032353438652342e-160 -7.032353438652342e-160 sqrt0127 sqrt -0.0 -1.3722939367590908e-315 -> 2.6194407196566702e-158 -2.6194407196566702e-158 sqrt0128 sqrt 7.9050503334599447e-323 0.0 -> 8.8910349979403099e-162 0.0 sqrt0129 sqrt 1.8623241768349486e-309 -0.0 -> 4.3154654173506579e-155 -0.0 sqrt0130 sqrt -2.665971134499887e-308 0.0 -> 0.0 1.6327801856036491e-154 sqrt0131 sqrt -1.5477066694467245e-310 -0.0 -> 0.0 -1.2440685951533077e-155 -- inputs whose absolute value overflows sqrt0140 sqrt 1.6999999999999999e+308 -1.6999999999999999e+308 -> 1.4325088230154573e+154 -5.9336458271212207e+153 sqrt0141 sqrt -1.797e+308 -9.9999999999999999e+306 -> 3.7284476432057307e+152 -1.3410406899802901e+154 -- special values sqrt1000 sqrt 0.0 0.0 -> 0.0 0.0 sqrt1001 sqrt -0.0 0.0 -> 0.0 0.0 sqrt1002 sqrt 0.0 inf -> inf inf sqrt1003 sqrt 2.3 inf -> inf inf sqrt1004 sqrt inf inf -> inf inf sqrt1005 sqrt -0.0 inf -> inf inf sqrt1006 sqrt -2.3 inf -> inf inf sqrt1007 sqrt -inf inf -> inf inf sqrt1008 sqrt nan inf -> inf inf sqrt1009 sqrt 0.0 nan -> nan nan sqrt1010 sqrt 2.3 nan -> nan nan sqrt1011 sqrt -0.0 nan -> nan nan sqrt1012 sqrt -2.3 nan -> nan nan sqrt1013 sqrt -inf 0.0 -> 0.0 inf sqrt1014 sqrt -inf 2.3 -> 0.0 inf sqrt1015 sqrt inf 0.0 -> inf 0.0 sqrt1016 sqrt inf 2.3 -> inf 0.0 sqrt1017 sqrt -inf nan -> nan inf ignore-imag-sign sqrt1018 sqrt inf nan -> inf nan sqrt1019 sqrt nan 0.0 -> nan nan sqrt1020 sqrt nan 2.3 -> nan nan sqrt1021 sqrt nan nan -> nan nan sqrt1022 sqrt 0.0 -0.0 -> 0.0 -0.0 sqrt1023 sqrt -0.0 -0.0 -> 0.0 -0.0 sqrt1024 sqrt 0.0 -inf -> inf -inf sqrt1025 sqrt 2.3 -inf -> inf -inf sqrt1026 sqrt inf -inf -> inf -inf sqrt1027 sqrt -0.0 -inf -> inf -inf sqrt1028 sqrt -2.3 -inf -> inf -inf sqrt1029 sqrt -inf -inf -> inf -inf sqrt1030 sqrt nan -inf -> inf -inf sqrt1031 sqrt -inf -0.0 -> 0.0 -inf sqrt1032 sqrt -inf -2.3 -> 0.0 -inf sqrt1033 sqrt inf -0.0 -> inf -0.0 sqrt1034 sqrt inf -2.3 -> inf -0.0 sqrt1035 sqrt nan -0.0 -> nan nan sqrt1036 sqrt nan -2.3 -> nan nan -- For exp, cosh, sinh, tanh we limit tests to arguments whose -- imaginary part is less than 10 in absolute value: most math -- libraries have poor accuracy for (real) sine and cosine for -- large arguments, and the accuracy of these complex functions -- suffer correspondingly. -- -- Similarly, for cos, sin and tan we limit tests to arguments -- with relatively small real part. ------------------------------- -- exp: Exponential function -- ------------------------------- -- zeros exp0000 exp 0.0 0.0 -> 1.0 0.0 exp0001 exp 0.0 -0.0 -> 1.0 -0.0 exp0002 exp -0.0 0.0 -> 1.0 0.0 exp0003 exp -0.0 -0.0 -> 1.0 -0.0 -- random inputs exp0004 exp -17.957359009564684 -1.108613895795274 -> 7.0869292576226611e-09 -1.4225929202377833e-08 exp0005 exp -1.4456149663368642e-15 -0.75359817331772239 -> 0.72923148323917997 -0.68426708517419033 exp0006 exp -0.76008654883512661 -0.46657235480105019 -> 0.41764393109928666 -0.21035108396792854 exp0007 exp -5.7071614697735731 -2.3744161818115816e-11 -> 0.0033220890242068356 -7.8880219364953578e-14 exp0008 exp -0.4653981327927097 -5.2236706667445587e-21 -> 0.62788507378216663 -3.2798648420026468e-21 exp0009 exp -3.2444565242295518 1.1535625304243959 -> 0.015799936931457641 0.035644950380024749 exp0010 exp -3.0651456337977727 0.87765086532391878 -> 0.029805595629855953 0.035882775180855669 exp0011 exp -0.11080823753233926 0.96486386300873106 -> 0.50979112534376314 0.73575512419561562 exp0012 exp -2.5629722598928648 0.019636235754708079 -> 0.077060452853917397 0.0015133717341137684 exp0013 exp -3.3201709957983357e-10 1.2684017344487268 -> 0.29780699855434889 0.95462610007689186 exp0014 exp 0.88767276057993272 -0.18953422986895557 -> 2.3859624049858095 -0.45771559132044426 exp0015 exp 1.5738333486794742 -2.2576803075544328e-11 -> 4.8251091132458654 -1.0893553826776623e-10 exp0016 exp 1.6408702341813795 -1.438879484380837 -> 0.6786733590689048 -5.1148284173168825 exp0017 exp 1.820279424202033 -0.020812040370785722 -> 6.1722462896420902 -0.1284755888435051 exp0018 exp 1.7273965735945873 -0.61140621328954947 -> 4.6067931898799976 -3.2294267694441308 exp0019 exp 2.5606034306862995 0.098153136008435504 -> 12.881325889966629 1.2684184812864494 exp0020 exp 10.280368619483029 3.4564622559748535 -> -27721.283321551502 -9028.9663215568835 exp0021 exp 1.104007405129741e-155 0.21258803067317278 -> 0.97748813933531764 0.21099037290544478 exp0022 exp 0.027364777809295172 0.00059226603500623363 -> 1.0277424518451876 0.0006086970181346579 exp0023 exp 0.94356313429255245 3.418530463518592 -> -2.4712285695346194 -0.70242654900218349 -- cases where exp(z) representable, exp(z.real) not exp0030 exp 710.0 0.78500000000000003 -> 1.5803016909637158e+308 1.5790437551806911e+308 exp0031 exp 710.0 -0.78500000000000003 -> 1.5803016909637158e+308 -1.5790437551806911e+308 -- values for which exp(x) is subnormal, or underflows to 0 exp0040 exp -735.0 0.78500000000000003 -> 4.3976783136329355e-320 4.3942198541120468e-320 exp0041 exp -735.0 -2.3559999999999999 -> -4.3952079854037293e-320 -4.396690182341253e-320 exp0042 exp -745.0 0.0 -> 4.9406564584124654e-324 0.0 exp0043 exp -745.0 0.7 -> 0.0 0.0 exp0044 exp -745.0 2.1 -> -0.0 0.0 exp0045 exp -745.0 3.7 -> -0.0 -0.0 exp0046 exp -745.0 5.3 -> 0.0 -0.0 -- values for which exp(z) overflows exp0050 exp 710.0 0.0 -> inf 0.0 overflow exp0051 exp 711.0 0.7 -> inf inf overflow exp0052 exp 710.0 1.5 -> 1.5802653829857376e+307 inf overflow exp0053 exp 710.0 1.6 -> -6.5231579995501372e+306 inf overflow exp0054 exp 710.0 2.8 -> -inf 7.4836177417448528e+307 overflow -- special values exp1000 exp 0.0 0.0 -> 1.0 0.0 exp1001 exp -0.0 0.0 -> 1.0 0.0 exp1002 exp 0.0 inf -> nan nan invalid exp1003 exp 2.3 inf -> nan nan invalid exp1004 exp -0.0 inf -> nan nan invalid exp1005 exp -2.3 inf -> nan nan invalid exp1006 exp 0.0 nan -> nan nan exp1007 exp 2.3 nan -> nan nan exp1008 exp -0.0 nan -> nan nan exp1009 exp -2.3 nan -> nan nan exp1010 exp -inf 0.0 -> 0.0 0.0 exp1011 exp -inf 1.4 -> 0.0 0.0 exp1012 exp -inf 2.8 -> -0.0 0.0 exp1013 exp -inf 4.2 -> -0.0 -0.0 exp1014 exp -inf 5.6 -> 0.0 -0.0 exp1015 exp -inf 7.0 -> 0.0 0.0 exp1016 exp inf 0.0 -> inf 0.0 exp1017 exp inf 1.4 -> inf inf exp1018 exp inf 2.8 -> -inf inf exp1019 exp inf 4.2 -> -inf -inf exp1020 exp inf 5.6 -> inf -inf exp1021 exp inf 7.0 -> inf inf exp1022 exp -inf inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign exp1023 exp inf inf -> inf nan invalid ignore-real-sign exp1024 exp -inf nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign exp1025 exp inf nan -> inf nan ignore-real-sign exp1026 exp nan 0.0 -> nan 0.0 exp1027 exp nan 2.3 -> nan nan exp1028 exp nan inf -> nan nan exp1029 exp nan nan -> nan nan exp1030 exp 0.0 -0.0 -> 1.0 -0.0 exp1031 exp -0.0 -0.0 -> 1.0 -0.0 exp1032 exp 0.0 -inf -> nan nan invalid exp1033 exp 2.3 -inf -> nan nan invalid exp1034 exp -0.0 -inf -> nan nan invalid exp1035 exp -2.3 -inf -> nan nan invalid exp1036 exp -inf -0.0 -> 0.0 -0.0 exp1037 exp -inf -1.4 -> 0.0 -0.0 exp1038 exp -inf -2.8 -> -0.0 -0.0 exp1039 exp -inf -4.2 -> -0.0 0.0 exp1040 exp -inf -5.6 -> 0.0 0.0 exp1041 exp -inf -7.0 -> 0.0 -0.0 exp1042 exp inf -0.0 -> inf -0.0 exp1043 exp inf -1.4 -> inf -inf exp1044 exp inf -2.8 -> -inf -inf exp1045 exp inf -4.2 -> -inf inf exp1046 exp inf -5.6 -> inf inf exp1047 exp inf -7.0 -> inf -inf exp1048 exp -inf -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign exp1049 exp inf -inf -> inf nan invalid ignore-real-sign exp1050 exp nan -0.0 -> nan -0.0 exp1051 exp nan -2.3 -> nan nan exp1052 exp nan -inf -> nan nan ----------------------------- -- cosh: Hyperbolic Cosine -- ----------------------------- -- zeros cosh0000 cosh 0.0 0.0 -> 1.0 0.0 cosh0001 cosh 0.0 -0.0 -> 1.0 -0.0 cosh0002 cosh -0.0 0.0 -> 1.0 -0.0 cosh0003 cosh -0.0 -0.0 -> 1.0 0.0 -- random inputs cosh0004 cosh -0.85395264297414253 -8.8553756148671958 -> -1.1684340348021185 0.51842195359787435 cosh0005 cosh -19.584904237211223 -0.066582627994906177 -> 159816812.23336992 10656776.050406246 cosh0006 cosh -0.11072618401130772 -1.484820215073247 -> 0.086397164744949503 0.11054275637717284 cosh0007 cosh -3.4764840250681752 -0.48440348288275276 -> 14.325931955190844 7.5242053548737955 cosh0008 cosh -0.52047063604524602 -0.3603805382775585 -> 1.0653940354683802 0.19193293606252473 cosh0009 cosh -1.39518962975995 0.0074738604700702906 -> 2.1417031027235969 -0.01415518712296308 cosh0010 cosh -0.37107064757653541 0.14728085307856609 -> 1.0580601496776991 -0.055712531964568587 cosh0011 cosh -5.8470200958739653 4.0021722388336292 -> -112.86220667618285 131.24734033545013 cosh0012 cosh -0.1700261444851883 0.97167540135354513 -> 0.57208748253577946 -0.1410904820240203 cosh0013 cosh -0.44042397902648783 1.0904791964139742 -> 0.50760322393058133 -0.40333966652010816 cosh0014 cosh 0.052267552491867299 -3.8889011430644174 -> -0.73452303414639297 0.035540704833537134 cosh0015 cosh 0.98000764177127453 -1.2548829247784097 -> 0.47220747341416142 -1.0879421432180316 cosh0016 cosh 0.083594701222644008 -0.88847899930181284 -> 0.63279782419312613 -0.064954566816002285 cosh0017 cosh 1.38173531783776 -0.43185040816732229 -> 1.9221663374671647 -0.78073830858849347 cosh0018 cosh 0.57315681120148465 -0.22255760951027942 -> 1.1399733125173004 -0.1335512343605956 cosh0019 cosh 1.8882512333062347 4.5024932182383797 -> -0.7041602065362691 -3.1573822131964615 cosh0020 cosh 0.5618219206858317 0.92620452129575348 -> 0.69822380405378381 0.47309067471054522 cosh0021 cosh 0.54361442847062591 0.64176483583018462 -> 0.92234462074193491 0.34167906495845501 cosh0022 cosh 0.0014777403107920331 1.3682028122677661 -> 0.2012106963899549 0.001447518137863219 cosh0023 cosh 2.218885944363501 2.0015727395883687 -> -1.94294321081968 4.1290269176083196 -- large real part cosh0030 cosh 710.5 2.3519999999999999 -> -1.2967465239355998e+308 1.3076707908857333e+308 cosh0031 cosh -710.5 0.69999999999999996 -> 1.4085466381392499e+308 -1.1864024666450239e+308 -- special values cosh1000 cosh 0.0 0.0 -> 1.0 0.0 cosh1001 cosh 0.0 inf -> nan 0.0 invalid ignore-imag-sign cosh1002 cosh 0.0 nan -> nan 0.0 ignore-imag-sign cosh1003 cosh 2.3 inf -> nan nan invalid cosh1004 cosh 2.3 nan -> nan nan cosh1005 cosh inf 0.0 -> inf 0.0 cosh1006 cosh inf 1.4 -> inf inf cosh1007 cosh inf 2.8 -> -inf inf cosh1008 cosh inf 4.2 -> -inf -inf cosh1009 cosh inf 5.6 -> inf -inf cosh1010 cosh inf 7.0 -> inf inf cosh1011 cosh inf inf -> inf nan invalid ignore-real-sign cosh1012 cosh inf nan -> inf nan cosh1013 cosh nan 0.0 -> nan 0.0 ignore-imag-sign cosh1014 cosh nan 2.3 -> nan nan cosh1015 cosh nan inf -> nan nan cosh1016 cosh nan nan -> nan nan cosh1017 cosh 0.0 -0.0 -> 1.0 -0.0 cosh1018 cosh 0.0 -inf -> nan 0.0 invalid ignore-imag-sign cosh1019 cosh 2.3 -inf -> nan nan invalid cosh1020 cosh inf -0.0 -> inf -0.0 cosh1021 cosh inf -1.4 -> inf -inf cosh1022 cosh inf -2.8 -> -inf -inf cosh1023 cosh inf -4.2 -> -inf inf cosh1024 cosh inf -5.6 -> inf inf cosh1025 cosh inf -7.0 -> inf -inf cosh1026 cosh inf -inf -> inf nan invalid ignore-real-sign cosh1027 cosh nan -0.0 -> nan 0.0 ignore-imag-sign cosh1028 cosh nan -2.3 -> nan nan cosh1029 cosh nan -inf -> nan nan cosh1030 cosh -0.0 -0.0 -> 1.0 0.0 cosh1031 cosh -0.0 -inf -> nan 0.0 invalid ignore-imag-sign cosh1032 cosh -0.0 nan -> nan 0.0 ignore-imag-sign cosh1033 cosh -2.3 -inf -> nan nan invalid cosh1034 cosh -2.3 nan -> nan nan cosh1035 cosh -inf -0.0 -> inf 0.0 cosh1036 cosh -inf -1.4 -> inf inf cosh1037 cosh -inf -2.8 -> -inf inf cosh1038 cosh -inf -4.2 -> -inf -inf cosh1039 cosh -inf -5.6 -> inf -inf cosh1040 cosh -inf -7.0 -> inf inf cosh1041 cosh -inf -inf -> inf nan invalid ignore-real-sign cosh1042 cosh -inf nan -> inf nan cosh1043 cosh -0.0 0.0 -> 1.0 -0.0 cosh1044 cosh -0.0 inf -> nan 0.0 invalid ignore-imag-sign cosh1045 cosh -2.3 inf -> nan nan invalid cosh1046 cosh -inf 0.0 -> inf -0.0 cosh1047 cosh -inf 1.4 -> inf -inf cosh1048 cosh -inf 2.8 -> -inf -inf cosh1049 cosh -inf 4.2 -> -inf inf cosh1050 cosh -inf 5.6 -> inf inf cosh1051 cosh -inf 7.0 -> inf -inf cosh1052 cosh -inf inf -> inf nan invalid ignore-real-sign --------------------------- -- sinh: Hyperbolic Sine -- --------------------------- -- zeros sinh0000 sinh 0.0 0.0 -> 0.0 0.0 sinh0001 sinh 0.0 -0.0 -> 0.0 -0.0 sinh0002 sinh -0.0 0.0 -> -0.0 0.0 sinh0003 sinh -0.0 -0.0 -> -0.0 -0.0 -- random inputs sinh0004 sinh -17.282588091462742 -0.38187948694103546 -> -14867386.857248396 -5970648.6553516639 sinh0005 sinh -343.91971203143208 -5.0172868877771525e-22 -> -1.1518691776521735e+149 -5.7792581214689021e+127 sinh0006 sinh -14.178122253300922 -1.9387157579351293 -> 258440.37909034826 -670452.58500946441 sinh0007 sinh -1.0343810581686239 -1.0970235266369905 -> -0.56070858278092739 -1.4098883258046697 sinh0008 sinh -0.066126561416368204 -0.070461584169961872 -> -0.066010558700938124 -0.070557276738637542 sinh0009 sinh -0.37630149150308484 3.3621734692162173 -> 0.37591118119332617 -0.23447115926369383 sinh0010 sinh -0.049941960978670055 0.40323767020414625 -> -0.045955482136329009 0.3928878494430646 sinh0011 sinh -16.647852603903715 0.0026852219129082098 -> -8492566.5739382561 22804.480671133562 sinh0012 sinh -1.476625314303694 0.89473773116683386 -> -1.2982943334382224 1.7966593367791204 sinh0013 sinh -422.36429577556913 0.10366634502307912 -> -1.3400321008920044e+183 1.3941600948045599e+182 sinh0014 sinh 0.09108340745641981 -0.40408227416070353 -> 0.083863724802237902 -0.39480716553935602 sinh0015 sinh 2.036064132067386 -2.6831729961386239 -> -3.37621124363175 -1.723868330002817 sinh0016 sinh 2.5616717223063317 -0.0078978498622717767 -> 6.4399415853815869 -0.051472264400722133 sinh0017 sinh 0.336804011985188 -6.5654622971649337 -> 0.32962499307574578 -0.29449170159995197 sinh0018 sinh 0.23774603755649693 -0.92467195799232049 -> 0.14449839490603389 -0.82109449053556793 sinh0019 sinh 0.0011388273541465494 1.9676196882949855 -> -0.00044014605389634999 0.92229398407098806 sinh0020 sinh 3.2443870105663759 0.8054287559616895 -> 8.8702890778527426 9.2610748597042196 sinh0021 sinh 0.040628908857054738 0.098206391190944958 -> 0.04044426841671233 0.098129544739707392 sinh0022 sinh 4.7252283918217696e-30 9.1198155642656697 -> -4.5071980561644404e-30 0.30025730701661713 sinh0023 sinh 0.043713693678420068 0.22512549887532657 -> 0.042624198673416713 0.22344201231217961 -- large real part sinh0030 sinh 710.5 -2.3999999999999999 -> -1.3579970564885919e+308 -1.24394470907798e+308 sinh0031 sinh -710.5 0.80000000000000004 -> -1.2830671601735164e+308 1.3210954193997678e+308 -- special values sinh1000 sinh 0.0 0.0 -> 0.0 0.0 sinh1001 sinh 0.0 inf -> 0.0 nan invalid ignore-real-sign sinh1002 sinh 0.0 nan -> 0.0 nan ignore-real-sign sinh1003 sinh 2.3 inf -> nan nan invalid sinh1004 sinh 2.3 nan -> nan nan sinh1005 sinh inf 0.0 -> inf 0.0 sinh1006 sinh inf 1.4 -> inf inf sinh1007 sinh inf 2.8 -> -inf inf sinh1008 sinh inf 4.2 -> -inf -inf sinh1009 sinh inf 5.6 -> inf -inf sinh1010 sinh inf 7.0 -> inf inf sinh1011 sinh inf inf -> inf nan invalid ignore-real-sign sinh1012 sinh inf nan -> inf nan ignore-real-sign sinh1013 sinh nan 0.0 -> nan 0.0 sinh1014 sinh nan 2.3 -> nan nan sinh1015 sinh nan inf -> nan nan sinh1016 sinh nan nan -> nan nan sinh1017 sinh 0.0 -0.0 -> 0.0 -0.0 sinh1018 sinh 0.0 -inf -> 0.0 nan invalid ignore-real-sign sinh1019 sinh 2.3 -inf -> nan nan invalid sinh1020 sinh inf -0.0 -> inf -0.0 sinh1021 sinh inf -1.4 -> inf -inf sinh1022 sinh inf -2.8 -> -inf -inf sinh1023 sinh inf -4.2 -> -inf inf sinh1024 sinh inf -5.6 -> inf inf sinh1025 sinh inf -7.0 -> inf -inf sinh1026 sinh inf -inf -> inf nan invalid ignore-real-sign sinh1027 sinh nan -0.0 -> nan -0.0 sinh1028 sinh nan -2.3 -> nan nan sinh1029 sinh nan -inf -> nan nan sinh1030 sinh -0.0 -0.0 -> -0.0 -0.0 sinh1031 sinh -0.0 -inf -> 0.0 nan invalid ignore-real-sign sinh1032 sinh -0.0 nan -> 0.0 nan ignore-real-sign sinh1033 sinh -2.3 -inf -> nan nan invalid sinh1034 sinh -2.3 nan -> nan nan sinh1035 sinh -inf -0.0 -> -inf -0.0 sinh1036 sinh -inf -1.4 -> -inf -inf sinh1037 sinh -inf -2.8 -> inf -inf sinh1038 sinh -inf -4.2 -> inf inf sinh1039 sinh -inf -5.6 -> -inf inf sinh1040 sinh -inf -7.0 -> -inf -inf sinh1041 sinh -inf -inf -> inf nan invalid ignore-real-sign sinh1042 sinh -inf nan -> inf nan ignore-real-sign sinh1043 sinh -0.0 0.0 -> -0.0 0.0 sinh1044 sinh -0.0 inf -> 0.0 nan invalid ignore-real-sign sinh1045 sinh -2.3 inf -> nan nan invalid sinh1046 sinh -inf 0.0 -> -inf 0.0 sinh1047 sinh -inf 1.4 -> -inf inf sinh1048 sinh -inf 2.8 -> inf inf sinh1049 sinh -inf 4.2 -> inf -inf sinh1050 sinh -inf 5.6 -> -inf -inf sinh1051 sinh -inf 7.0 -> -inf inf sinh1052 sinh -inf inf -> inf nan invalid ignore-real-sign ------------------------------ -- tanh: Hyperbolic Tangent -- ------------------------------ -- Disabled test: replaced by test_math.testTanhSign() -- and test_cmath.testTanhSign() -- -- zeros -- tanh0000 tanh 0.0 0.0 -> 0.0 0.0 -- tanh0001 tanh 0.0 -0.0 -> 0.0 -0.0 -- tanh0002 tanh -0.0 0.0 -> -0.0 0.0 -- tanh0003 tanh -0.0 -0.0 -> -0.0 -0.0 -- random inputs tanh0004 tanh -21.200500450664993 -1.6970729480342996 -> -1.0 1.9241352344849399e-19 tanh0005 tanh -0.34158771504251928 -8.0848504951747131 -> -2.123711225855613 1.2827526782026006 tanh0006 tanh -15.454144725193689 -0.23619582288265617 -> -0.99999999999993283 -3.4336684248260036e-14 tanh0007 tanh -7.6103163119661952 -0.7802748320307008 -> -0.99999999497219438 -4.9064845343755437e-07 tanh0008 tanh -0.15374717235792129 -0.6351086327306138 -> -0.23246081703561869 -0.71083467433910219 tanh0009 tanh -0.49101115474392465 0.09723001264886301 -> -0.45844445715492133 0.077191158541805888 tanh0010 tanh -0.10690612157664491 2.861612800856395 -> -0.11519761626257358 -0.28400488355647507 tanh0011 tanh -0.91505774192066702 1.5431174597727007 -> -1.381109893068114 0.025160819663709356 tanh0012 tanh -0.057433367093792223 0.35491159541246459 -> -0.065220499046696953 0.36921788332369498 tanh0013 tanh -1.3540418621233514 0.18969415642242535 -> -0.88235642861151387 0.043764069984411721 tanh0014 tanh 0.94864783961003529 -0.11333689578867717 -> 0.74348401861861368 -0.051271042543855221 tanh0015 tanh 1.9591698133845488 -0.0029654444904578339 -> 0.9610270776968135 -0.00022664240049212933 tanh0016 tanh 1.0949715796669197 -0.24706642853984456 -> 0.81636574501369386 -0.087767436914149954 tanh0017 tanh 5770428.2113731047 -3.7160580339833165 -> 1.0 -0.0 tanh0018 tanh 1.5576782321399629 -1.0357943787966468 -> 1.0403002384895388 -0.081126347894671463 tanh0019 tanh 0.62378536230552961 2.3471393579560216 -> 0.85582499238960363 -0.53569473646842869 tanh0020 tanh 17.400628602508025 9.3987059533841979 -> 0.99999999999999845 -8.0175867720530832e-17 tanh0021 tanh 0.15026177509871896 0.50630349159505472 -> 0.19367536571827768 0.53849847858853661 tanh0022 tanh 0.57433977530711167 1.0071604546265627 -> 1.0857848159262844 0.69139213955872214 tanh0023 tanh 0.16291181500449456 0.006972810241567544 -> 0.16149335907551157 0.0067910772903467817 -- large real part tanh0030 tanh 710 0.13 -> 1.0 0.0 tanh0031 tanh -711 7.4000000000000004 -> -1.0 0.0 tanh0032 tanh 1000 -2.3199999999999998 -> 1.0 0.0 tanh0033 tanh -1.0000000000000001e+300 -9.6699999999999999 -> -1.0 -0.0 --special values tanh1000 tanh 0.0 0.0 -> 0.0 0.0 tanh1001 tanh 0.0 inf -> nan nan invalid tanh1002 tanh 2.3 inf -> nan nan invalid tanh1003 tanh 0.0 nan -> nan nan tanh1004 tanh 2.3 nan -> nan nan tanh1005 tanh inf 0.0 -> 1.0 0.0 tanh1006 tanh inf 0.7 -> 1.0 0.0 tanh1007 tanh inf 1.4 -> 1.0 0.0 tanh1008 tanh inf 2.1 -> 1.0 -0.0 tanh1009 tanh inf 2.8 -> 1.0 -0.0 tanh1010 tanh inf 3.5 -> 1.0 0.0 tanh1011 tanh inf inf -> 1.0 0.0 ignore-imag-sign tanh1012 tanh inf nan -> 1.0 0.0 ignore-imag-sign tanh1013 tanh nan 0.0 -> nan 0.0 tanh1014 tanh nan 2.3 -> nan nan tanh1015 tanh nan inf -> nan nan tanh1016 tanh nan nan -> nan nan tanh1017 tanh 0.0 -0.0 -> 0.0 -0.0 tanh1018 tanh 0.0 -inf -> nan nan invalid tanh1019 tanh 2.3 -inf -> nan nan invalid tanh1020 tanh inf -0.0 -> 1.0 -0.0 tanh1021 tanh inf -0.7 -> 1.0 -0.0 tanh1022 tanh inf -1.4 -> 1.0 -0.0 tanh1023 tanh inf -2.1 -> 1.0 0.0 tanh1024 tanh inf -2.8 -> 1.0 0.0 tanh1025 tanh inf -3.5 -> 1.0 -0.0 tanh1026 tanh inf -inf -> 1.0 0.0 ignore-imag-sign tanh1027 tanh nan -0.0 -> nan -0.0 tanh1028 tanh nan -2.3 -> nan nan tanh1029 tanh nan -inf -> nan nan tanh1030 tanh -0.0 -0.0 -> -0.0 -0.0 tanh1031 tanh -0.0 -inf -> nan nan invalid tanh1032 tanh -2.3 -inf -> nan nan invalid tanh1033 tanh -0.0 nan -> nan nan tanh1034 tanh -2.3 nan -> nan nan tanh1035 tanh -inf -0.0 -> -1.0 -0.0 tanh1036 tanh -inf -0.7 -> -1.0 -0.0 tanh1037 tanh -inf -1.4 -> -1.0 -0.0 tanh1038 tanh -inf -2.1 -> -1.0 0.0 tanh1039 tanh -inf -2.8 -> -1.0 0.0 tanh1040 tanh -inf -3.5 -> -1.0 -0.0 tanh1041 tanh -inf -inf -> -1.0 0.0 ignore-imag-sign tanh1042 tanh -inf nan -> -1.0 0.0 ignore-imag-sign tanh1043 tanh -0.0 0.0 -> -0.0 0.0 tanh1044 tanh -0.0 inf -> nan nan invalid tanh1045 tanh -2.3 inf -> nan nan invalid tanh1046 tanh -inf 0.0 -> -1.0 0.0 tanh1047 tanh -inf 0.7 -> -1.0 0.0 tanh1048 tanh -inf 1.4 -> -1.0 0.0 tanh1049 tanh -inf 2.1 -> -1.0 -0.0 tanh1050 tanh -inf 2.8 -> -1.0 -0.0 tanh1051 tanh -inf 3.5 -> -1.0 0.0 tanh1052 tanh -inf inf -> -1.0 0.0 ignore-imag-sign ----------------- -- cos: Cosine -- ----------------- -- zeros cos0000 cos 0.0 0.0 -> 1.0 -0.0 cos0001 cos 0.0 -0.0 -> 1.0 0.0 cos0002 cos -0.0 0.0 -> 1.0 0.0 cos0003 cos -0.0 -0.0 -> 1.0 -0.0 -- random inputs cos0004 cos -2.0689194692073034 -0.0016802181751734313 -> -0.47777827208561469 -0.0014760401501695971 cos0005 cos -0.4209627318177977 -1.8238516774258027 -> 2.9010402201444108 -1.2329207042329617 cos0006 cos -1.9402181630694557 -2.9751857392891217 -> -3.5465459297970985 -9.1119163586282248 cos0007 cos -3.3118320290191616 -0.87871302909286142 -> -1.3911528636565498 0.16878141517391701 cos0008 cos -4.9540404623376872 -0.57949232239026827 -> 0.28062445586552065 0.59467861308508008 cos0009 cos -0.45374584316245026 1.3950283448373935 -> 1.9247665574290578 0.83004572204761107 cos0010 cos -0.42578172040176843 1.2715881615413049 -> 1.7517161459489148 0.67863902697363332 cos0011 cos -0.13862985354300136 0.43587635877670328 -> 1.0859880290361912 0.062157548146672272 cos0012 cos -0.11073221308966584 9.9384082307326475e-15 -> 0.99387545040722947 1.0982543264065479e-15 cos0013 cos -1.5027633662054623e-07 0.0069668060249955498 -> 1.0000242682912412 1.0469545565660995e-09 cos0014 cos 4.9728645490503052 -0.00027479808860952822 -> 0.25754011731975501 -0.00026552849549083186 cos0015 cos 7.81969303486719 -0.79621523445878783 -> 0.045734882501585063 0.88253139933082991 cos0016 cos 0.13272421880766716 -0.74668445308718201 -> 1.2806012244432847 0.10825373267437005 cos0017 cos 4.2396521985973274 -2.2178848380884881 -> -2.1165117057056855 -4.0416492444641401 cos0018 cos 1.1622206624927296 -0.50400115461197081 -> 0.44884072613370379 0.4823469915034318 cos0019 cos 1.628772864620884e-08 0.58205705428979282 -> 1.1742319995791435 -1.0024839481956604e-08 cos0020 cos 2.6385212606111241 2.9886107100937296 -> -8.7209475927161417 -4.7748352107199796 cos0021 cos 4.8048375263775256 0.0062248852898515658 -> 0.092318702015846243 0.0061983430422306142 cos0022 cos 7.9914515433858515 0.71659966615501436 -> -0.17375439906936566 -0.77217043527294582 cos0023 cos 0.45124351152540226 1.6992693993812158 -> 2.543477948972237 -1.1528193694875477 -- special values cos1000 cos -0.0 0.0 -> 1.0 0.0 cos1001 cos -inf 0.0 -> nan 0.0 invalid ignore-imag-sign cos1002 cos nan 0.0 -> nan 0.0 ignore-imag-sign cos1003 cos -inf 2.2999999999999998 -> nan nan invalid cos1004 cos nan 2.2999999999999998 -> nan nan cos1005 cos -0.0 inf -> inf 0.0 cos1006 cos -1.3999999999999999 inf -> inf inf cos1007 cos -2.7999999999999998 inf -> -inf inf cos1008 cos -4.2000000000000002 inf -> -inf -inf cos1009 cos -5.5999999999999996 inf -> inf -inf cos1010 cos -7.0 inf -> inf inf cos1011 cos -inf inf -> inf nan invalid ignore-real-sign cos1012 cos nan inf -> inf nan cos1013 cos -0.0 nan -> nan 0.0 ignore-imag-sign cos1014 cos -2.2999999999999998 nan -> nan nan cos1015 cos -inf nan -> nan nan cos1016 cos nan nan -> nan nan cos1017 cos 0.0 0.0 -> 1.0 -0.0 cos1018 cos inf 0.0 -> nan 0.0 invalid ignore-imag-sign cos1019 cos inf 2.2999999999999998 -> nan nan invalid cos1020 cos 0.0 inf -> inf -0.0 cos1021 cos 1.3999999999999999 inf -> inf -inf cos1022 cos 2.7999999999999998 inf -> -inf -inf cos1023 cos 4.2000000000000002 inf -> -inf inf cos1024 cos 5.5999999999999996 inf -> inf inf cos1025 cos 7.0 inf -> inf -inf cos1026 cos inf inf -> inf nan invalid ignore-real-sign cos1027 cos 0.0 nan -> nan 0.0 ignore-imag-sign cos1028 cos 2.2999999999999998 nan -> nan nan cos1029 cos inf nan -> nan nan cos1030 cos 0.0 -0.0 -> 1.0 0.0 cos1031 cos inf -0.0 -> nan 0.0 invalid ignore-imag-sign cos1032 cos nan -0.0 -> nan 0.0 ignore-imag-sign cos1033 cos inf -2.2999999999999998 -> nan nan invalid cos1034 cos nan -2.2999999999999998 -> nan nan cos1035 cos 0.0 -inf -> inf 0.0 cos1036 cos 1.3999999999999999 -inf -> inf inf cos1037 cos 2.7999999999999998 -inf -> -inf inf cos1038 cos 4.2000000000000002 -inf -> -inf -inf cos1039 cos 5.5999999999999996 -inf -> inf -inf cos1040 cos 7.0 -inf -> inf inf cos1041 cos inf -inf -> inf nan invalid ignore-real-sign cos1042 cos nan -inf -> inf nan cos1043 cos -0.0 -0.0 -> 1.0 -0.0 cos1044 cos -inf -0.0 -> nan 0.0 invalid ignore-imag-sign cos1045 cos -inf -2.2999999999999998 -> nan nan invalid cos1046 cos -0.0 -inf -> inf -0.0 cos1047 cos -1.3999999999999999 -inf -> inf -inf cos1048 cos -2.7999999999999998 -inf -> -inf -inf cos1049 cos -4.2000000000000002 -inf -> -inf inf cos1050 cos -5.5999999999999996 -inf -> inf inf cos1051 cos -7.0 -inf -> inf -inf cos1052 cos -inf -inf -> inf nan invalid ignore-real-sign --------------- -- sin: Sine -- --------------- -- zeros sin0000 sin 0.0 0.0 -> 0.0 0.0 sin0001 sin 0.0 -0.0 -> 0.0 -0.0 sin0002 sin -0.0 0.0 -> -0.0 0.0 sin0003 sin -0.0 -0.0 -> -0.0 -0.0 -- random inputs sin0004 sin -0.18691829163163759 -0.74388741985507034 -> -0.2396636733773444 -0.80023231101856751 sin0005 sin -0.45127453702459158 -461.81339920716164 -> -7.9722299331077877e+199 -1.6450205811004628e+200 sin0006 sin -0.47669228345768921 -2.7369936564987514 -> -3.557238022267124 -6.8308030771226615 sin0007 sin -0.31024285525950857 -1.4869219939188296 -> -0.70972676047175209 -1.9985029635426839 sin0008 sin -4.4194573407025608 -1.405999210989288 -> 2.0702480800802685 0.55362250792180601 sin0009 sin -1.7810832046434898e-05 0.0016439555384379083 -> -1.7810856113185261e-05 0.0016439562786668375 sin0010 sin -0.8200017874897666 0.61724876887771929 -> -0.8749078195948865 0.44835295550987758 sin0011 sin -1.4536502806107114 0.63998575534150415 -> -1.2035709929437679 0.080012187489163708 sin0012 sin -2.2653412155506079 0.13172760685583729 -> -0.77502093809190431 -0.084554426868229532 sin0013 sin -0.02613983069491858 0.18404766597776073 -> -0.026580778863127943 0.18502525396735642 sin0014 sin 1.5743065001054617 -0.53125574272642029 -> 1.1444596332092725 0.0019537598099352077 sin0015 sin 7.3833101791283289e-20 -0.16453221324236217 -> 7.4834720674379429e-20 -0.16527555646466915 sin0016 sin 0.34763834641254038 -2.8377416421089565 -> 2.918883541504663 -8.0002718053250224 sin0017 sin 0.077105785180421563 -0.090056027316200674 -> 0.077341973814471304 -0.089909869380524587 sin0018 sin 3.9063227798142329e-17 -0.05954098654295524 -> 3.9132490348956512e-17 -0.059576172859837351 sin0019 sin 0.57333917932544598 8.7785221430594696e-06 -> 0.54244029338302935 7.3747869125301368e-06 sin0020 sin 0.024861722816513169 0.33044620756118515 -> 0.026228801369651 0.3363889671570689 sin0021 sin 1.4342727387492671 0.81361889790284347 -> 1.3370960060947923 0.12336137961387163 sin0022 sin 1.1518087354403725 4.8597235966150558 -> 58.919141989603041 26.237003403758852 sin0023 sin 0.00087773078406649192 34.792379211312095 -> 565548145569.38245 644329685822700.62 -- special values sin1000 sin -0.0 0.0 -> -0.0 0.0 sin1001 sin -inf 0.0 -> nan 0.0 invalid ignore-imag-sign sin1002 sin nan 0.0 -> nan 0.0 ignore-imag-sign sin1003 sin -inf 2.2999999999999998 -> nan nan invalid sin1004 sin nan 2.2999999999999998 -> nan nan sin1005 sin -0.0 inf -> -0.0 inf sin1006 sin -1.3999999999999999 inf -> -inf inf sin1007 sin -2.7999999999999998 inf -> -inf -inf sin1008 sin -4.2000000000000002 inf -> inf -inf sin1009 sin -5.5999999999999996 inf -> inf inf sin1010 sin -7.0 inf -> -inf inf sin1011 sin -inf inf -> nan inf invalid ignore-imag-sign sin1012 sin nan inf -> nan inf ignore-imag-sign sin1013 sin -0.0 nan -> -0.0 nan sin1014 sin -2.2999999999999998 nan -> nan nan sin1015 sin -inf nan -> nan nan sin1016 sin nan nan -> nan nan sin1017 sin 0.0 0.0 -> 0.0 0.0 sin1018 sin inf 0.0 -> nan 0.0 invalid ignore-imag-sign sin1019 sin inf 2.2999999999999998 -> nan nan invalid sin1020 sin 0.0 inf -> 0.0 inf sin1021 sin 1.3999999999999999 inf -> inf inf sin1022 sin 2.7999999999999998 inf -> inf -inf sin1023 sin 4.2000000000000002 inf -> -inf -inf sin1024 sin 5.5999999999999996 inf -> -inf inf sin1025 sin 7.0 inf -> inf inf sin1026 sin inf inf -> nan inf invalid ignore-imag-sign sin1027 sin 0.0 nan -> 0.0 nan sin1028 sin 2.2999999999999998 nan -> nan nan sin1029 sin inf nan -> nan nan sin1030 sin 0.0 -0.0 -> 0.0 -0.0 sin1031 sin inf -0.0 -> nan 0.0 invalid ignore-imag-sign sin1032 sin nan -0.0 -> nan 0.0 ignore-imag-sign sin1033 sin inf -2.2999999999999998 -> nan nan invalid sin1034 sin nan -2.2999999999999998 -> nan nan sin1035 sin 0.0 -inf -> 0.0 -inf sin1036 sin 1.3999999999999999 -inf -> inf -inf sin1037 sin 2.7999999999999998 -inf -> inf inf sin1038 sin 4.2000000000000002 -inf -> -inf inf sin1039 sin 5.5999999999999996 -inf -> -inf -inf sin1040 sin 7.0 -inf -> inf -inf sin1041 sin inf -inf -> nan inf invalid ignore-imag-sign sin1042 sin nan -inf -> nan inf ignore-imag-sign sin1043 sin -0.0 -0.0 -> -0.0 -0.0 sin1044 sin -inf -0.0 -> nan 0.0 invalid ignore-imag-sign sin1045 sin -inf -2.2999999999999998 -> nan nan invalid sin1046 sin -0.0 -inf -> -0.0 -inf sin1047 sin -1.3999999999999999 -inf -> -inf -inf sin1048 sin -2.7999999999999998 -inf -> -inf inf sin1049 sin -4.2000000000000002 -inf -> inf inf sin1050 sin -5.5999999999999996 -inf -> inf -inf sin1051 sin -7.0 -inf -> -inf -inf sin1052 sin -inf -inf -> nan inf invalid ignore-imag-sign ------------------ -- tan: Tangent -- ------------------ -- zeros tan0000 tan 0.0 0.0 -> 0.0 0.0 tan0001 tan 0.0 -0.0 -> 0.0 -0.0 tan0002 tan -0.0 0.0 -> -0.0 0.0 tan0003 tan -0.0 -0.0 -> -0.0 -0.0 -- random inputs tan0004 tan -0.56378561833861074 -1.7110276237187664e+73 -> -0.0 -1.0 tan0005 tan -3.5451633993471915e-12 -2.855471863564059 -> -4.6622441304889575e-14 -0.99340273843093951 tan0006 tan -2.502442719638696 -0.26742234390504221 -> 0.66735215252994995 -0.39078997935420956 tan0007 tan -0.87639597720371365 -55.586225523280206 -> -1.0285264565948176e-48 -1.0 tan0008 tan -0.015783869596427243 -520.05944436039272 -> -0.0 -1.0 tan0009 tan -0.84643549990725164 2.0749097935396343 -> -0.031412661676959573 1.0033548479526764 tan0010 tan -0.43613792248559646 8.1082741629458059 -> -1.3879848444644593e-07 0.99999988344224011 tan0011 tan -1.0820906367833114 0.28571868992480248 -> -1.3622485737936536 0.99089269377971245 tan0012 tan -1.1477859580220084 1.9021637002708041 -> -0.034348450042071196 1.0293954097901687 tan0013 tan -0.12465543176953409 3.0606851016344815e-05 -> -0.12530514290387343 3.1087420769945479e-05 tan0014 tan 3.7582848717525343 -692787020.44038939 -> 0.0 -1.0 tan0015 tan 2.2321967655142176e-06 -10.090069423008169 -> 1.5369846120622643e-14 -0.99999999655723759 tan0016 tan 0.88371172390245012 -1.1635053630132823 -> 0.19705017118625889 -1.0196452280843129 tan0017 tan 2.1347414231849267 -1.9311339960416831 -> -0.038663576915982524 -1.0174399993980778 tan0018 tan 5.9027945255899974 -2.1574195684607135e-183 -> -0.39986591539281496 -2.5023753167976915e-183 tan0019 tan 0.44811489490805362 683216075670.07556 -> 0.0 1.0 tan0020 tan 4.1459766396068325 12.523017205605756 -> 2.4022514758988068e-11 1.0000000000112499 tan0021 tan 1.7809617968443272 1.5052381702853379 -> -0.044066222118946903 1.0932684517702778 tan0022 tan 1.1615313900880577 1.7956298728647107 -> 0.041793186826390362 1.0375339546034792 tan0023 tan 0.067014779477908945 5.8517361577457097 -> 2.2088639754800034e-06 0.9999836182420061 -- special values tan1000 tan -0.0 0.0 -> -0.0 0.0 tan1001 tan -inf 0.0 -> nan nan invalid tan1002 tan -inf 2.2999999999999998 -> nan nan invalid tan1003 tan nan 0.0 -> nan nan tan1004 tan nan 2.2999999999999998 -> nan nan tan1005 tan -0.0 inf -> -0.0 1.0 tan1006 tan -0.69999999999999996 inf -> -0.0 1.0 tan1007 tan -1.3999999999999999 inf -> -0.0 1.0 tan1008 tan -2.1000000000000001 inf -> 0.0 1.0 tan1009 tan -2.7999999999999998 inf -> 0.0 1.0 tan1010 tan -3.5 inf -> -0.0 1.0 tan1011 tan -inf inf -> -0.0 1.0 ignore-real-sign tan1012 tan nan inf -> -0.0 1.0 ignore-real-sign tan1013 tan -0.0 nan -> -0.0 nan tan1014 tan -2.2999999999999998 nan -> nan nan tan1015 tan -inf nan -> nan nan tan1016 tan nan nan -> nan nan tan1017 tan 0.0 0.0 -> 0.0 0.0 tan1018 tan inf 0.0 -> nan nan invalid tan1019 tan inf 2.2999999999999998 -> nan nan invalid tan1020 tan 0.0 inf -> 0.0 1.0 tan1021 tan 0.69999999999999996 inf -> 0.0 1.0 tan1022 tan 1.3999999999999999 inf -> 0.0 1.0 tan1023 tan 2.1000000000000001 inf -> -0.0 1.0 tan1024 tan 2.7999999999999998 inf -> -0.0 1.0 tan1025 tan 3.5 inf -> 0.0 1.0 tan1026 tan inf inf -> -0.0 1.0 ignore-real-sign tan1027 tan 0.0 nan -> 0.0 nan tan1028 tan 2.2999999999999998 nan -> nan nan tan1029 tan inf nan -> nan nan tan1030 tan 0.0 -0.0 -> 0.0 -0.0 tan1031 tan inf -0.0 -> nan nan invalid tan1032 tan inf -2.2999999999999998 -> nan nan invalid tan1033 tan nan -0.0 -> nan nan tan1034 tan nan -2.2999999999999998 -> nan nan tan1035 tan 0.0 -inf -> 0.0 -1.0 tan1036 tan 0.69999999999999996 -inf -> 0.0 -1.0 tan1037 tan 1.3999999999999999 -inf -> 0.0 -1.0 tan1038 tan 2.1000000000000001 -inf -> -0.0 -1.0 tan1039 tan 2.7999999999999998 -inf -> -0.0 -1.0 tan1040 tan 3.5 -inf -> 0.0 -1.0 tan1041 tan inf -inf -> -0.0 -1.0 ignore-real-sign tan1042 tan nan -inf -> -0.0 -1.0 ignore-real-sign tan1043 tan -0.0 -0.0 -> -0.0 -0.0 tan1044 tan -inf -0.0 -> nan nan invalid tan1045 tan -inf -2.2999999999999998 -> nan nan invalid tan1046 tan -0.0 -inf -> -0.0 -1.0 tan1047 tan -0.69999999999999996 -inf -> -0.0 -1.0 tan1048 tan -1.3999999999999999 -inf -> -0.0 -1.0 tan1049 tan -2.1000000000000001 -inf -> 0.0 -1.0 tan1050 tan -2.7999999999999998 -inf -> 0.0 -1.0 tan1051 tan -3.5 -inf -> -0.0 -1.0 tan1052 tan -inf -inf -> -0.0 -1.0 ignore-real-sign ------------------------------------------------------------------------ -- rect: Conversion from polar coordinates to rectangular coordinates -- ------------------------------------------------------------------------ -- -- For cmath.rect, we can use the same testcase syntax as for the -- complex -> complex functions above, but here the input arguments -- should be interpreted as a pair of floating-point numbers rather -- than the real and imaginary parts of a complex number. -- -- Here are the 'spirit of C99' rules for rect. First, the short -- version: -- -- rect(x, t) = exp(log(x)+it) for positive-signed x -- rect(x, t) = -exp(log(-x)+it) for negative-signed x -- rect(nan, t) = exp(nan + it), except that in rect(nan, +-0) the -- sign of the imaginary part is unspecified. -- -- and now the long version: -- -- rect(x, -t) = conj(rect(x, t)) for all x and t -- rect(-x, t) = -rect(x, t) for all x and t -- rect(+0, +0) returns +0 + i0 -- rect(+0, inf) returns +- 0 +- i0, where the signs of the real and -- imaginary parts are unspecified. -- rect(x, inf) returns NaN + i NaN and raises the "invalid" -- floating-point exception, for finite nonzero x. -- rect(inf, inf) returns +-inf + i NaN and raises the "invalid" -- floating-point exception (where the sign of the real part of the -- result is unspecified). -- rect(inf, +0) returns inf+i0 -- rect(inf, x) returns inf*cis(x), for finite nonzero x -- rect(inf, NaN) returns +-inf+i NaN, where the sign of the real part -- of the result is unspecified. -- rect(NaN, x) returns NaN + i NaN for all nonzero numbers (including -- infinities) x -- rect(NaN, 0) returns NaN +- i0, where the sign of the imaginary -- part is unspecified -- rect(NaN, NaN) returns NaN + i NaN -- rect(x, NaN) returns NaN + i NaN for finite nonzero x -- rect(+0, NaN) return +-0 +- i0, where the signs of the real and -- imaginary parts are unspecified. -- special values rect1000 rect 0.0 0.0 -> 0.0 0.0 rect1001 rect 0.0 inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign rect1002 rect 2.3 inf -> nan nan invalid rect1003 rect inf inf -> inf nan invalid ignore-real-sign rect1004 rect inf 0.0 -> inf 0.0 rect1005 rect inf 1.4 -> inf inf rect1006 rect inf 2.8 -> -inf inf rect1007 rect inf 4.2 -> -inf -inf rect1008 rect inf 5.6 -> inf -inf rect1009 rect inf 7.0 -> inf inf rect1010 rect nan 0.0 -> nan 0.0 ignore-imag-sign rect1011 rect nan 2.3 -> nan nan rect1012 rect nan inf -> nan nan rect1013 rect nan nan -> nan nan rect1014 rect inf nan -> inf nan ignore-real-sign rect1015 rect 2.3 nan -> nan nan rect1016 rect 0.0 nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign rect1017 rect 0.0 -0.0 -> 0.0 -0.0 rect1018 rect 0.0 -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign rect1019 rect 2.3 -inf -> nan nan invalid rect1020 rect inf -inf -> inf nan invalid ignore-real-sign rect1021 rect inf -0.0 -> inf -0.0 rect1022 rect inf -1.4 -> inf -inf rect1023 rect inf -2.8 -> -inf -inf rect1024 rect inf -4.2 -> -inf inf rect1025 rect inf -5.6 -> inf inf rect1026 rect inf -7.0 -> inf -inf rect1027 rect nan -0.0 -> nan 0.0 ignore-imag-sign rect1028 rect nan -2.3 -> nan nan rect1029 rect nan -inf -> nan nan rect1030 rect -0.0 0.0 -> -0.0 -0.0 rect1031 rect -0.0 inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign rect1032 rect -2.3 inf -> nan nan invalid rect1033 rect -inf inf -> -inf nan invalid ignore-real-sign rect1034 rect -inf 0.0 -> -inf -0.0 rect1035 rect -inf 1.4 -> -inf -inf rect1036 rect -inf 2.8 -> inf -inf rect1037 rect -inf 4.2 -> inf inf rect1038 rect -inf 5.6 -> -inf inf rect1039 rect -inf 7.0 -> -inf -inf rect1040 rect -inf nan -> inf nan ignore-real-sign rect1041 rect -2.3 nan -> nan nan rect1042 rect -0.0 nan -> 0.0 0.0 ignore-real-sign ignore-imag-sign rect1043 rect -0.0 -0.0 -> -0.0 0.0 rect1044 rect -0.0 -inf -> 0.0 0.0 ignore-real-sign ignore-imag-sign rect1045 rect -2.3 -inf -> nan nan invalid rect1046 rect -inf -inf -> -inf nan invalid ignore-real-sign rect1047 rect -inf -0.0 -> -inf 0.0 rect1048 rect -inf -1.4 -> -inf inf rect1049 rect -inf -2.8 -> inf inf rect1050 rect -inf -4.2 -> inf -inf rect1051 rect -inf -5.6 -> -inf -inf rect1052 rect -inf -7.0 -> -inf inf ------------------------------------------------------------------------- -- polar: Conversion from rectangular coordinates to polar coordinates -- ------------------------------------------------------------------------- -- -- For cmath.polar, we can use the same testcase syntax as for the -- complex -> complex functions above, but here the output arguments -- should be interpreted as a pair of floating-point numbers rather -- than the real and imaginary parts of a complex number. -- -- Annex G of the C99 standard describes fully both the real and -- imaginary parts of polar (as cabs and carg, respectively, which in turn -- are defined in terms of the functions hypot and atan2). -- overflow polar0100 polar 1.4e308 1.4e308 -> inf 0.78539816339744828 overflow -- special values polar1000 polar 0.0 0.0 -> 0.0 0.0 polar1001 polar 0.0 -0.0 -> 0.0 -0.0 polar1002 polar -0.0 0.0 -> 0.0 3.1415926535897931 polar1003 polar -0.0 -0.0 -> 0.0 -3.1415926535897931 polar1004 polar inf 0.0 -> inf 0.0 polar1005 polar inf 2.3 -> inf 0.0 polar1006 polar inf inf -> inf 0.78539816339744828 polar1007 polar 2.3 inf -> inf 1.5707963267948966 polar1008 polar 0.0 inf -> inf 1.5707963267948966 polar1009 polar -0.0 inf -> inf 1.5707963267948966 polar1010 polar -2.3 inf -> inf 1.5707963267948966 polar1011 polar -inf inf -> inf 2.3561944901923448 polar1012 polar -inf 2.3 -> inf 3.1415926535897931 polar1013 polar -inf 0.0 -> inf 3.1415926535897931 polar1014 polar -inf -0.0 -> inf -3.1415926535897931 polar1015 polar -inf -2.3 -> inf -3.1415926535897931 polar1016 polar -inf -inf -> inf -2.3561944901923448 polar1017 polar -2.3 -inf -> inf -1.5707963267948966 polar1018 polar -0.0 -inf -> inf -1.5707963267948966 polar1019 polar 0.0 -inf -> inf -1.5707963267948966 polar1020 polar 2.3 -inf -> inf -1.5707963267948966 polar1021 polar inf -inf -> inf -0.78539816339744828 polar1022 polar inf -2.3 -> inf -0.0 polar1023 polar inf -0.0 -> inf -0.0 polar1024 polar nan -inf -> inf nan polar1025 polar nan -2.3 -> nan nan polar1026 polar nan -0.0 -> nan nan polar1027 polar nan 0.0 -> nan nan polar1028 polar nan 2.3 -> nan nan polar1029 polar nan inf -> inf nan polar1030 polar nan nan -> nan nan polar1031 polar inf nan -> inf nan polar1032 polar 2.3 nan -> nan nan polar1033 polar 0.0 nan -> nan nan polar1034 polar -0.0 nan -> nan nan polar1035 polar -2.3 nan -> nan nan polar1036 polar -inf nan -> inf nan BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- StopIteration +-- StopAsyncIteration +-- ArithmeticError | +-- FloatingPointError | +-- OverflowError | +-- ZeroDivisionError +-- AssertionError +-- AttributeError +-- BufferError +-- EOFError +-- ImportError +-- LookupError | +-- IndexError | +-- KeyError +-- MemoryError +-- NameError | +-- UnboundLocalError +-- OSError | +-- BlockingIOError | +-- ChildProcessError | +-- ConnectionError | | +-- BrokenPipeError | | +-- ConnectionAbortedError | | +-- ConnectionRefusedError | | +-- ConnectionResetError | +-- FileExistsError | +-- FileNotFoundError | +-- InterruptedError | +-- IsADirectoryError | +-- NotADirectoryError | +-- PermissionError | +-- ProcessLookupError | +-- TimeoutError +-- ReferenceError +-- RuntimeError | +-- NotImplementedError | +-- RecursionError +-- SyntaxError | +-- IndentationError | +-- TabError +-- SystemError +-- TypeError +-- ValueError | +-- UnicodeError | +-- UnicodeDecodeError | +-- UnicodeEncodeError | +-- UnicodeTranslateError +-- Warning +-- DeprecationWarning +-- PendingDeprecationWarning +-- RuntimeWarning +-- SyntaxWarning +-- UserWarning +-- FutureWarning +-- ImportWarning +-- UnicodeWarning +-- BytesWarning +-- ResourceWarning # These numbers are used to test floating point binary-to-decimal conversion. # They are based on the TCL test suite (tests/expr.test), which is based on # test data from: # Brigitte Verdonk, Annie Cuyt, Dennis Verschaeren, A precision and range # independent tool for testing floating-point arithmetic II: Conversions, # ACM Transactions on Mathematical Software 27:2 (March 2001), pp. 119-140. 0E0 -0E0 1E0 15E-1 125E-2 1125E-3 10625E-4 103125E-5 1015625E-6 10078125E-7 100390625E-8 1001953125E-9 10009765625E-10 100048828125E-11 1000244140625E-12 10001220703125E-13 100006103515625E-14 1000030517578125E-15 10000152587890625E-16 +8E153 -1E153 +9E306 -2E153 +7E-304 -3E-49 +7E-303 -6E-49 +9E43 -9E44 +8E303 -1E303 +7E-287 -2E-204 +2E-205 -9E-47 +34E195 -68E195 +85E194 -67E97 +93E-234 -19E-87 +38E-87 -38E-88 -69E220 +18E43 -36E43 +61E-99 -43E-92 +86E-92 -51E-74 +283E85 -566E85 +589E187 -839E143 -744E-234 +930E-235 -186E-234 +604E175 -302E175 +755E174 -151E175 +662E-213 -408E-74 +510E-75 +6782E55 -2309E92 +7963E34 -3391E55 +7903E-96 -7611E-226 +4907E-196 -5547E-311 +5311E241 -5311E243 +5311E242 +9269E-45 -8559E-289 +8699E-276 -8085E-64 +74819E201 -82081E41 +51881E37 -55061E157 +77402E-215 -33891E-92 +38701E-215 -82139E-76 +75859E25 +89509E140 -57533E287 +46073E-32 -92146E-32 +83771E-74 -34796E-276 +584169E229 +164162E41 -328324E41 +209901E-11 -419802E-11 +940189E-112 -892771E-213 +757803E120 -252601E120 +252601E121 -505202E120 +970811E-264 -654839E-60 +289767E-178 -579534E-178 -8823691E130 +9346704E229 -1168338E229 -6063369E-136 +3865421E-225 -5783893E-127 +2572231E223 -5144462E223 +1817623E109 +6431543E-97 -5444097E-21 +8076999E-121 -9997649E-270 +50609263E157 +70589528E130 -88236910E129 +87575437E-310 -23135572E-127 +85900881E177 -84863171E113 +68761586E232 -50464069E286 +27869147E-248 -55738294E-248 +70176353E-53 -80555086E-32 -491080654E121 +526250918E287 -245540327E121 -175150874E-310 +350301748E-310 -437877185E-311 +458117166E52 -916234332E52 +229058583E52 -525789935E98 +282926897E-227 -565853794E-227 +667284113E-240 -971212611E-126 +9981396317E-182 -5035231965E-156 +8336960483E-153 -8056371144E-155 +6418488827E79 -3981006983E252 +7962013966E252 -4713898551E261 +8715380633E-58 -9078555839E-109 +9712126110E-127 +42333842451E201 -84667684902E201 +23792120709E-315 -78564021519E-227 +71812054883E-188 -30311163631E-116 +71803914657E292 +36314223356E-109 +18157111678E-109 -45392779195E-110 +778380362293E218 -685763015669E280 +952918668151E70 -548357443505E32 +384865004907E-285 -769730009814E-285 +697015418417E-93 -915654049301E-28 +178548656339E169 -742522891517E259 +742522891517E258 -357097312678E169 -3113521449172E218 +3891901811465E217 -1556760724586E218 +9997878507563E-195 -7247563029154E-319 +3623781514577E-319 -3092446298323E-200 +6363857920591E145 -8233559360849E94 +2689845954547E49 -5379691909094E49 +5560322501926E-301 -7812878489261E-179 +8439398533053E-256 -2780161250963E-301 -87605699161665E155 -17521139832333E156 -88218101363513E-170 +38639244311627E-115 +35593959807306E261 -53390939710959E260 +71187919614612E261 -88984899518265E260 +77003665618895E-73 -15400733123779E-72 +61602932495116E-72 -30801466247558E-72 +834735494917063E-300 -589795149206434E-151 +475603213226859E-42 -294897574603217E-151 +850813008001913E93 -203449172043339E185 +406898344086678E185 -813796688173356E185 +6045338514609393E244 -5145963778954906E142 +2572981889477453E142 -6965949469487146E74 +6182410494241627E-119 -8510309498186985E-277 +6647704637273331E-212 -2215901545757777E-212 +3771476185376383E276 -3729901848043846E212 +3771476185376383E277 -9977830465649166E119 +8439928496349319E-142 -8204230082070882E-59 +8853686434843997E-244 -5553274272288559E-104 +36149023611096162E144 -36149023611096162E147 +18074511805548081E146 -18074511805548081E147 +97338774138954421E-290 -88133809804950961E-308 +94080055902682397E-243 -24691002732654881E-115 +52306490527514614E49 -26153245263757307E49 +55188692254193604E165 -68985865317742005E164 +27176258005319167E-261 -73169230107256116E-248 +91461537634070145E-249 -54352516010638334E-261 +586144289638535878E280 -601117006785295431E245 +293072144819267939E280 -953184713238516652E272 +902042358290366539E-281 -557035730189854663E-294 +902042358290366539E-280 -354944100507554393E-238 +272104041512242479E199 -816312124536727437E199 +544208083024484958E199 -792644927852378159E78 -679406450132979175E-263 +543525160106383340E-262 +7400253695682920196E215 -1850063423920730049E215 +3700126847841460098E215 -9250317119603650245E214 +8396094300569779681E-252 -3507665085003296281E-75 +7015330170006592562E-75 -7015330170006592562E-74 +7185620434951919351E205 -1360520207561212395E198 +2178999185345151731E-184 -8691089486201567102E-218 +4345544743100783551E-218 -4357998370690303462E-184 +59825267349106892461E177 -62259110684423957791E47 +58380168477038565599E265 -62259110684423957791E48 -33584377202279118724E-252 -57484963479615354808E205 +71856204349519193510E204 -14371240869903838702E205 +36992084760177624177E-318 -73984169520355248354E-318 +99257763227713890244E-115 -87336362425182547697E-280 +7E289 -3E153 +6E153 -5E243 +7E-161 -7E-172 +8E-63 -7E-113 +8E126 -4E126 +5E125 -1E126 +8E-163 -1E-163 +2E-163 -4E-163 +51E195 -37E46 +74E46 -56E289 +69E-145 -70E-162 +56E-161 -21E-303 +34E-276 -68E-276 +85E-277 -87E-274 +829E102 -623E100 +723E-162 -457E-102 +914E-102 -323E-135 +151E176 -302E176 +921E90 -604E176 +823E-206 -463E-114 +348E-274 +9968E100 -6230E99 +1246E100 +6676E-296 -8345E-297 +1669E-296 -3338E-296 +3257E58 -6514E58 +2416E176 +8085E-63 -3234E-62 +1617E-62 -6468E-62 +53418E111 -60513E160 +26709E111 -99447E166 +12549E48 -25098E48 +50196E48 -62745E47 +83771E-73 -97451E-167 +86637E-203 -75569E-254 +473806E83 -947612E83 +292369E76 -584738E76 +933587E-140 -720919E-14 +535001E-149 -890521E-235 +548057E81 -706181E88 +820997E106 -320681E63 +928609E-261 -302276E-254 +151138E-254 +4691773E45 -9383546E45 +3059949E-243 -6119898E-243 +5356626E-213 -4877378E-199 +7716693E223 -5452869E109 +4590831E156 -9181662E156 -3714436E-261 +4643045E-262 -7428872E-261 +52942146E130 -27966061E145 +26471073E130 -55932122E145 +95412548E-99 -47706274E-99 +23853137E-99 -78493654E-301 +65346417E29 -51083099E167 +89396333E264 -84863171E114 +59540836E-251 -74426045E-252 +14885209E-251 -29770418E-251 +982161308E122 -245540327E122 +491080654E122 +525452622E-310 -771837113E-134 +820858081E-150 -262726311E-310 +923091487E209 -653777767E273 +842116236E-53 -741111169E-202 +839507247E-284 -951487269E-264 -9821613080E121 +6677856011E-31 -3573796826E-266 +7147593652E-266 -9981396317E-181 +3268888835E272 -2615111068E273 +1307555534E273 +2990671154E-190 -1495335577E-190 +5981342308E-190 -7476677885E-191 +82259684194E-202 -93227267727E-49 +41129842097E-202 -47584241418E-314 -79360293406E92 +57332259349E225 -57202326162E111 +86860597053E-206 -53827010643E-200 +53587107423E-61 +635007636765E200 +508006109412E201 -254003054706E201 +561029718715E-72 -897647549944E-71 +112205943743E-71 -873947086081E-236 +809184709177E116 -573112917422E81 +286556458711E81 +952805821491E-259 -132189992873E-44 -173696038493E-144 +1831132757599E-107 -9155663787995E-108 +7324531030396E-107 -9277338894969E-200 +8188292423973E287 -5672557437938E59 +2836278718969E59 -9995153153494E54 +9224786422069E-291 -3142213164987E-294 +6284426329974E-294 -8340483752889E-301 +67039371486466E89 -62150786615239E197 +33519685743233E89 -52563419496999E156 +32599460466991E-65 -41010988798007E-133 +65198920933982E-65 -82021977596014E-133 +80527976643809E61 -74712611505209E158 +53390939710959E261 -69277302659155E225 +46202199371337E-72 -23438635467783E-179 +41921560615349E-67 -92404398742674E-72 +738545606647197E124 -972708181182949E117 -837992143580825E87 +609610927149051E-255 -475603213226859E-41 +563002800671023E-177 -951206426453718E-41 +805416432656519E202 -530658674694337E159 +946574173863918E208 -318329953318553E113 -462021993713370E-73 +369617594970696E-72 +3666156212014994E233 -1833078106007497E233 +8301790508624232E174 -1037723813578029E174 +7297662880581139E-286 -5106185698912191E-276 +7487252720986826E-165 -3743626360493413E-165 +3773057430100257E230 -7546114860200514E230 +4321222892463822E58 -7793560217139653E51 +26525993941010681E112 -53051987882021362E112 +72844871414247907E77 -88839359596763261E105 +18718131802467065E-166 -14974505441973652E-165 +73429396004640239E106 -58483921078398283E57 +41391519190645203E165 -82783038381290406E165 +58767043776702677E-163 -90506231831231999E-129 +64409240769861689E-159 -77305427432277771E-190 +476592356619258326E273 -953184713238516652E273 +899810892172646163E283 -929167076892018333E187 +647761278967534239E-312 -644290479820542942E-180 +926145344610700019E-225 -958507931896511964E-246 +272104041512242479E200 -792644927852378159E79 +544208083024484958E200 -929963218616126365E290 +305574339166810102E-219 -152787169583405051E-219 +611148678333620204E-219 -763935847917025255E-220 +7439550220920798612E158 -3719775110460399306E158 +9299437776150998265E157 -7120190517612959703E120 +3507665085003296281E-73 -7015330170006592562E-73 -6684428762278255956E-294 -1088416166048969916E200 -8707329328391759328E200 +4439021781608558002E-65 -8878043563217116004E-65 +2219510890804279001E-65 +33051223951904955802E55 -56961524140903677624E120 +71201905176129597030E119 +14030660340013185124E-73 -17538325425016481405E-74 +67536228609141569109E-133 -35620497849450218807E-306 +66550376797582521751E-126 -71240995698900437614E-306 +3E24 -6E24 +6E26 -7E25 +1E-14 -2E-14 +4E-14 -8E-14 +5E26 -8E27 +1E27 -4E27 +9E-13 -7E-20 +56E25 -70E24 +51E26 +71E-17 -31E-5 +62E-5 -94E-8 +67E27 -81E24 +54E23 -54E25 +63E-22 -63E-23 +43E-4 -86E-4 +942E26 -471E25 +803E24 -471E26 -409E-21 +818E-21 -867E-8 +538E27 -857E24 +269E27 -403E26 +959E-7 -959E-6 +373E-27 -746E-27 +4069E24 -4069E23 -8138E24 +8294E-15 -4147E-14 +4147E-15 -8294E-14 +538E27 -2690E26 +269E27 -2152E27 +1721E-17 -7979E-27 +6884E-17 -8605E-18 +82854E27 -55684E24 +27842E24 -48959E25 +81921E-17 -76207E-8 +4147E-15 -41470E-16 +89309E24 +75859E26 -75859E25 +14257E-23 -28514E-23 +57028E-23 -71285E-24 +344863E27 -951735E27 +200677E23 -401354E24 +839604E-11 -209901E-11 +419802E-11 -537734E-24 +910308E26 -227577E26 +455154E26 -531013E25 +963019E-21 -519827E-13 +623402E-27 -311701E-27 +9613651E26 -9191316E23 +4595658E23 -2297829E23 -1679208E-11 +3379223E27 -6758446E27 +5444097E-21 -8399969E-27 +8366487E-16 -8366487E-15 +65060671E25 +65212389E23 +55544957E-13 -51040905E-20 +99585767E-22 -99585767E-23 +40978393E26 -67488159E24 +69005339E23 -81956786E26 -87105552E-21 +10888194E-21 -21776388E-21 +635806667E27 -670026614E25 +335013307E26 -335013307E25 +371790617E-24 -371790617E-25 +743581234E-24 -743581234E-25 +202464477E24 -404928954E24 +997853758E27 -997853758E26 +405498418E-17 -582579084E-14 +608247627E-18 -291289542E-14 -9537100005E26 +6358066670E27 -1271613334E27 +5229646999E-16 +5229646999E-17 +4429943614E24 -8859887228E24 +2214971807E24 -4176887093E26 +4003495257E-20 -4361901637E-23 +8723803274E-23 -8006990514E-20 +72835110098E27 -36417555049E27 +84279630104E25 -84279630104E24 +21206176437E-27 -66461566917E-22 +64808355539E-16 -84932679673E-19 +65205430094E26 -68384463429E25 +32602715047E26 -62662203426E27 +58784444678E-18 -50980203373E-21 +29392222339E-18 -75529940323E-27 -937495906299E26 +842642485799E-20 -387824150699E-23 +924948814726E-27 -775648301398E-23 +547075707432E25 +683844634290E24 -136768926858E25 +509802033730E-22 +101960406746E-21 -815683253968E-21 +7344124123524E24 -9180155154405E23 +6479463327323E27 -1836031030881E24 +4337269293039E-19 -4599163554373E-23 +9198327108746E-23 +4812803938347E27 -8412030890011E23 +9625607876694E27 -4739968828249E24 +9697183891673E-23 -7368108517543E-20 +51461358161422E25 -77192037242133E26 +77192037242133E25 -51461358161422E27 +43999661561541E-21 -87999323123082E-21 +48374886826137E-26 -57684246567111E-23 +87192805957686E23 -75108713005913E24 +64233110587487E27 -77577471133384E-23 +48485919458365E-24 -56908598265713E-26 +589722294620133E23 +652835804449289E-22 -656415363936202E-23 +579336749585745E-25 -381292764980839E-26 +965265859649698E23 -848925235434882E27 +536177612222491E23 -424462617717441E27 +276009279888989E-27 -608927158043691E-26 +552018559777978E-27 -425678377667758E-22 +8013702726927119E26 +8862627962362001E27 -5068007907757162E26 -7379714799828406E-23 +4114538064016107E-27 -3689857399914203E-23 +5575954851815478E23 +3395700941739528E27 +4115535777581961E-23 -8231071555163922E-23 +6550246696190871E-26 -68083046403986701E27 +43566388595783643E27 -87132777191567286E27 +59644881059342141E25 -83852770718576667E23 +99482967418206961E-25 -99482967418206961E-26 +87446669969994614E-27 -43723334984997307E-27 +5E24 -8E25 +1E25 -4E25 +2E-5 -5E-6 +4E-5 -3E-20 +3E27 -9E26 +7E25 -6E27 +2E-21 -5E-22 -4E-21 +87E25 -97E24 +82E-24 -41E-24 +76E-23 +83E25 -50E27 +25E27 -99E27 +97E-10 -57E-20 +997E23 +776E24 -388E24 +521E-10 -506E-26 +739E-10 -867E-7 -415E24 +332E25 -664E25 +291E-13 -982E-8 +582E-13 -491E-8 +4574E26 -8609E26 +2287E26 -4818E24 +6529E-8 -8151E-21 +1557E-12 -2573E-18 +4929E-16 -3053E-22 +9858E-16 -7767E-11 +54339E26 -62409E25 +32819E27 -89849E27 +63876E-20 -15969E-20 +31938E-20 -79845E-21 +89306E27 -25487E24 +79889E24 -97379E26 +81002E-8 -43149E-25 +40501E-8 -60318E-10 -648299E27 +780649E24 +720919E-14 -629703E-11 +557913E24 -847899E23 +565445E27 -736531E24 +680013E-19 -529981E-10 +382923E-23 -633614E-18 +2165479E27 -8661916E27 +4330958E27 -9391993E22 -5767352E-14 +7209190E-15 -1441838E-14 +8478990E22 +1473062E24 +8366487E-14 -8399969E-25 +9366737E-12 -9406141E-13 +65970979E24 -65060671E26 +54923002E27 -63846927E25 +99585767E-21 +67488159E25 -69005339E24 +81956786E27 -40978393E27 +77505754E-12 -38752877E-12 +82772981E-15 -95593517E-25 +200036989E25 -772686455E27 +859139907E23 -400073978E25 +569014327E-14 -794263862E-15 +397131931E-15 -380398957E-16 +567366773E27 -337440795E24 +134976318E25 -269952636E25 +932080597E-20 -331091924E-15 -413864905E-16 +8539246247E26 -5859139791E26 +6105010149E24 -3090745820E27 +3470877773E-20 -6136309089E-27 +8917758713E-19 -6941755546E-20 +9194900535E25 -1838980107E26 +7355920428E26 -3677960214E26 +8473634343E-17 -8870766274E-16 +4435383137E-16 -9598990129E-15 +71563496764E26 -89454370955E25 +17890874191E26 -35781748382E26 +57973447842E-19 -28986723921E-19 +76822711313E-19 -97699466874E-20 +67748656762E27 -19394840991E24 +38789681982E24 -33874328381E27 +54323763886E-27 -58987193887E-20 +27161881943E-27 -93042648033E-19 +520831059055E27 -768124264394E25 +384062132197E25 +765337749889E-25 +794368912771E25 -994162090146E23 +781652779431E26 +910077190046E-26 -455038595023E-26 +471897551096E-20 -906698409911E-21 +8854128003935E25 -8146122716299E27 +7083302403148E26 -3541651201574E26 +8394920649291E-25 -7657975756753E-22 +5473834002228E-20 -6842292502785E-21 -2109568884597E25 +8438275538388E25 -4219137769194E25 +3200141789841E-25 -8655689322607E-22 +6400283579682E-25 -8837719634493E-21 +19428217075297E24 -38856434150594E24 +77712868301188E24 -77192037242133E27 +76579757567530E-23 +15315951513506E-22 -38289878783765E-23 +49378033925202E25 -50940527102367E24 +98756067850404E25 -99589397544892E26 -56908598265713E-25 +97470695699657E-22 -35851901247343E-25 +154384074484266E27 -308768148968532E27 +910990389005985E23 +271742424169201E-27 -543484848338402E-27 +162192083357563E-26 -869254552770081E-23 +664831007626046E24 -332415503813023E24 +943701829041427E24 -101881054204734E24 +828027839666967E-27 -280276135608777E-27 +212839188833879E-21 -113817196531426E-25 +9711553197796883E27 -2739849386524269E26 +5479698773048538E26 +6124568318523113E-25 -1139777988171071E-24 +6322612303128019E-27 -2955864564844617E-25 -9994029144998961E25 -2971238324022087E27 -1656055679333934E-27 -1445488709150234E-26 +55824717499885172E27 -69780896874856465E26 +84161538867545199E25 -27912358749942586E27 +24711112462926331E-25 -12645224606256038E-27 -12249136637046226E-25 +74874448287465757E27 -35642836832753303E24 -71285673665506606E24 +43723334984997307E-26 +10182419849537963E-24 -93501703572661982E-26 # A value that caused a crash in debug builds for Python >= 2.7, 3.1 # See http://bugs.python.org/issue7632 2183167012312112312312.23538020374420446192e-370 # Another value designed to test a corner case of Python's strtod code. 0.99999999999999999999999999999999999999999e+23 -- 'f' code formatting, with explicit precision (>= 0). Output always -- has the given number of places after the point; zeros are added if -- necessary to make this true. -- zeros %.0f 0 -> 0 %.1f 0 -> 0.0 %.2f 0 -> 0.00 %.3f 0 -> 0.000 %.50f 0 -> 0.00000000000000000000000000000000000000000000000000 -- precision 0; result should never include a . %.0f 1.5 -> 2 %.0f 2.5 -> 2 %.0f 3.5 -> 4 %.0f 0.0 -> 0 %.0f 0.1 -> 0 %.0f 0.001 -> 0 %.0f 10.0 -> 10 %.0f 10.1 -> 10 %.0f 10.01 -> 10 %.0f 123.456 -> 123 %.0f 1234.56 -> 1235 %.0f 1e49 -> 9999999999999999464902769475481793196872414789632 %.0f 9.9999999999999987e+49 -> 99999999999999986860582406952576489172979654066176 %.0f 1e50 -> 100000000000000007629769841091887003294964970946560 -- precision 1 %.1f 0.0001 -> 0.0 %.1f 0.001 -> 0.0 %.1f 0.01 -> 0.0 %.1f 0.04 -> 0.0 %.1f 0.06 -> 0.1 %.1f 0.25 -> 0.2 %.1f 0.75 -> 0.8 %.1f 1.4 -> 1.4 %.1f 1.5 -> 1.5 %.1f 10.0 -> 10.0 %.1f 1000.03 -> 1000.0 %.1f 1234.5678 -> 1234.6 %.1f 1234.7499 -> 1234.7 %.1f 1234.75 -> 1234.8 -- precision 2 %.2f 0.0001 -> 0.00 %.2f 0.001 -> 0.00 %.2f 0.004999 -> 0.00 %.2f 0.005001 -> 0.01 %.2f 0.01 -> 0.01 %.2f 0.125 -> 0.12 %.2f 0.375 -> 0.38 %.2f 1234500 -> 1234500.00 %.2f 1234560 -> 1234560.00 %.2f 1234567 -> 1234567.00 %.2f 1234567.8 -> 1234567.80 %.2f 1234567.89 -> 1234567.89 %.2f 1234567.891 -> 1234567.89 %.2f 1234567.8912 -> 1234567.89 -- alternate form always includes a decimal point. This only -- makes a difference when the precision is 0. %#.0f 0 -> 0. %#.1f 0 -> 0.0 %#.0f 1.5 -> 2. %#.0f 2.5 -> 2. %#.0f 10.1 -> 10. %#.0f 1234.56 -> 1235. %#.1f 1.4 -> 1.4 %#.2f 0.375 -> 0.38 -- if precision is omitted it defaults to 6 %f 0 -> 0.000000 %f 1230000 -> 1230000.000000 %f 1234567 -> 1234567.000000 %f 123.4567 -> 123.456700 %f 1.23456789 -> 1.234568 %f 0.00012 -> 0.000120 %f 0.000123 -> 0.000123 %f 0.00012345 -> 0.000123 %f 0.000001 -> 0.000001 %f 0.0000005001 -> 0.000001 %f 0.0000004999 -> 0.000000 -- 'e' code formatting with explicit precision (>= 0). Output should -- always have exactly the number of places after the point that were -- requested. -- zeros %.0e 0 -> 0e+00 %.1e 0 -> 0.0e+00 %.2e 0 -> 0.00e+00 %.10e 0 -> 0.0000000000e+00 %.50e 0 -> 0.00000000000000000000000000000000000000000000000000e+00 -- precision 0. no decimal point in the output %.0e 0.01 -> 1e-02 %.0e 0.1 -> 1e-01 %.0e 1 -> 1e+00 %.0e 10 -> 1e+01 %.0e 100 -> 1e+02 %.0e 0.012 -> 1e-02 %.0e 0.12 -> 1e-01 %.0e 1.2 -> 1e+00 %.0e 12 -> 1e+01 %.0e 120 -> 1e+02 %.0e 123.456 -> 1e+02 %.0e 0.000123456 -> 1e-04 %.0e 123456000 -> 1e+08 %.0e 0.5 -> 5e-01 %.0e 1.4 -> 1e+00 %.0e 1.5 -> 2e+00 %.0e 1.6 -> 2e+00 %.0e 2.4999999 -> 2e+00 %.0e 2.5 -> 2e+00 %.0e 2.5000001 -> 3e+00 %.0e 3.499999999999 -> 3e+00 %.0e 3.5 -> 4e+00 %.0e 4.5 -> 4e+00 %.0e 5.5 -> 6e+00 %.0e 6.5 -> 6e+00 %.0e 7.5 -> 8e+00 %.0e 8.5 -> 8e+00 %.0e 9.4999 -> 9e+00 %.0e 9.5 -> 1e+01 %.0e 10.5 -> 1e+01 %.0e 14.999 -> 1e+01 %.0e 15 -> 2e+01 -- precision 1 %.1e 0.0001 -> 1.0e-04 %.1e 0.001 -> 1.0e-03 %.1e 0.01 -> 1.0e-02 %.1e 0.1 -> 1.0e-01 %.1e 1 -> 1.0e+00 %.1e 10 -> 1.0e+01 %.1e 100 -> 1.0e+02 %.1e 120 -> 1.2e+02 %.1e 123 -> 1.2e+02 %.1e 123.4 -> 1.2e+02 -- precision 2 %.2e 0.00013 -> 1.30e-04 %.2e 0.000135 -> 1.35e-04 %.2e 0.0001357 -> 1.36e-04 %.2e 0.0001 -> 1.00e-04 %.2e 0.001 -> 1.00e-03 %.2e 0.01 -> 1.00e-02 %.2e 0.1 -> 1.00e-01 %.2e 1 -> 1.00e+00 %.2e 10 -> 1.00e+01 %.2e 100 -> 1.00e+02 %.2e 1000 -> 1.00e+03 %.2e 1500 -> 1.50e+03 %.2e 1590 -> 1.59e+03 %.2e 1598 -> 1.60e+03 %.2e 1598.7 -> 1.60e+03 %.2e 1598.76 -> 1.60e+03 %.2e 9999 -> 1.00e+04 -- omitted precision defaults to 6 %e 0 -> 0.000000e+00 %e 165 -> 1.650000e+02 %e 1234567 -> 1.234567e+06 %e 12345678 -> 1.234568e+07 %e 1.1 -> 1.100000e+00 -- alternate form always contains a decimal point. This only makes -- a difference when precision is 0. %#.0e 0.01 -> 1.e-02 %#.0e 0.1 -> 1.e-01 %#.0e 1 -> 1.e+00 %#.0e 10 -> 1.e+01 %#.0e 100 -> 1.e+02 %#.0e 0.012 -> 1.e-02 %#.0e 0.12 -> 1.e-01 %#.0e 1.2 -> 1.e+00 %#.0e 12 -> 1.e+01 %#.0e 120 -> 1.e+02 %#.0e 123.456 -> 1.e+02 %#.0e 0.000123456 -> 1.e-04 %#.0e 123456000 -> 1.e+08 %#.0e 0.5 -> 5.e-01 %#.0e 1.4 -> 1.e+00 %#.0e 1.5 -> 2.e+00 %#.0e 1.6 -> 2.e+00 %#.0e 2.4999999 -> 2.e+00 %#.0e 2.5 -> 2.e+00 %#.0e 2.5000001 -> 3.e+00 %#.0e 3.499999999999 -> 3.e+00 %#.0e 3.5 -> 4.e+00 %#.0e 4.5 -> 4.e+00 %#.0e 5.5 -> 6.e+00 %#.0e 6.5 -> 6.e+00 %#.0e 7.5 -> 8.e+00 %#.0e 8.5 -> 8.e+00 %#.0e 9.4999 -> 9.e+00 %#.0e 9.5 -> 1.e+01 %#.0e 10.5 -> 1.e+01 %#.0e 14.999 -> 1.e+01 %#.0e 15 -> 2.e+01 %#.1e 123.4 -> 1.2e+02 %#.2e 0.0001357 -> 1.36e-04 -- 'g' code formatting. -- zeros %.0g 0 -> 0 %.1g 0 -> 0 %.2g 0 -> 0 %.3g 0 -> 0 %.4g 0 -> 0 %.10g 0 -> 0 %.50g 0 -> 0 %.100g 0 -> 0 -- precision 0 doesn't make a lot of sense for the 'g' code (what does -- it mean to have no significant digits?); in practice, it's interpreted -- as identical to precision 1 %.0g 1000 -> 1e+03 %.0g 100 -> 1e+02 %.0g 10 -> 1e+01 %.0g 1 -> 1 %.0g 0.1 -> 0.1 %.0g 0.01 -> 0.01 %.0g 1e-3 -> 0.001 %.0g 1e-4 -> 0.0001 %.0g 1e-5 -> 1e-05 %.0g 1e-6 -> 1e-06 %.0g 12 -> 1e+01 %.0g 120 -> 1e+02 %.0g 1.2 -> 1 %.0g 0.12 -> 0.1 %.0g 0.012 -> 0.01 %.0g 0.0012 -> 0.001 %.0g 0.00012 -> 0.0001 %.0g 0.000012 -> 1e-05 %.0g 0.0000012 -> 1e-06 -- precision 1 identical to precision 0 %.1g 1000 -> 1e+03 %.1g 100 -> 1e+02 %.1g 10 -> 1e+01 %.1g 1 -> 1 %.1g 0.1 -> 0.1 %.1g 0.01 -> 0.01 %.1g 1e-3 -> 0.001 %.1g 1e-4 -> 0.0001 %.1g 1e-5 -> 1e-05 %.1g 1e-6 -> 1e-06 %.1g 12 -> 1e+01 %.1g 120 -> 1e+02 %.1g 1.2 -> 1 %.1g 0.12 -> 0.1 %.1g 0.012 -> 0.01 %.1g 0.0012 -> 0.001 %.1g 0.00012 -> 0.0001 %.1g 0.000012 -> 1e-05 %.1g 0.0000012 -> 1e-06 -- precision 2 %.2g 1000 -> 1e+03 %.2g 100 -> 1e+02 %.2g 10 -> 10 %.2g 1 -> 1 %.2g 0.1 -> 0.1 %.2g 0.01 -> 0.01 %.2g 0.001 -> 0.001 %.2g 1e-4 -> 0.0001 %.2g 1e-5 -> 1e-05 %.2g 1e-6 -> 1e-06 %.2g 1234 -> 1.2e+03 %.2g 123 -> 1.2e+02 %.2g 12.3 -> 12 %.2g 1.23 -> 1.2 %.2g 0.123 -> 0.12 %.2g 0.0123 -> 0.012 %.2g 0.00123 -> 0.0012 %.2g 0.000123 -> 0.00012 %.2g 0.0000123 -> 1.2e-05 -- bad cases from http://bugs.python.org/issue9980 %.12g 38210.0 -> 38210 %.12g 37210.0 -> 37210 %.12g 36210.0 -> 36210 -- alternate g formatting: always include decimal point and -- exactly significant digits. %#.0g 0 -> 0. %#.1g 0 -> 0. %#.2g 0 -> 0.0 %#.3g 0 -> 0.00 %#.4g 0 -> 0.000 %#.0g 0.2 -> 0.2 %#.1g 0.2 -> 0.2 %#.2g 0.2 -> 0.20 %#.3g 0.2 -> 0.200 %#.4g 0.2 -> 0.2000 %#.10g 0.2 -> 0.2000000000 %#.0g 2 -> 2. %#.1g 2 -> 2. %#.2g 2 -> 2.0 %#.3g 2 -> 2.00 %#.4g 2 -> 2.000 %#.0g 20 -> 2.e+01 %#.1g 20 -> 2.e+01 %#.2g 20 -> 20. %#.3g 20 -> 20.0 %#.4g 20 -> 20.00 %#.0g 234.56 -> 2.e+02 %#.1g 234.56 -> 2.e+02 %#.2g 234.56 -> 2.3e+02 %#.3g 234.56 -> 235. %#.4g 234.56 -> 234.6 %#.5g 234.56 -> 234.56 %#.6g 234.56 -> 234.560 -- repr formatting. Result always includes decimal point and at -- least one digit after the point, or an exponent. %r 0 -> 0.0 %r 1 -> 1.0 %r 0.01 -> 0.01 %r 0.02 -> 0.02 %r 0.03 -> 0.03 %r 0.04 -> 0.04 %r 0.05 -> 0.05 -- values >= 1e16 get an exponent %r 10 -> 10.0 %r 100 -> 100.0 %r 1e15 -> 1000000000000000.0 %r 9.999e15 -> 9999000000000000.0 %r 9999999999999998 -> 9999999999999998.0 %r 9999999999999999 -> 1e+16 %r 1e16 -> 1e+16 %r 1e17 -> 1e+17 -- as do values < 1e-4 %r 1e-3 -> 0.001 %r 1.001e-4 -> 0.0001001 %r 1.0000000000000001e-4 -> 0.0001 %r 1.000000000000001e-4 -> 0.0001000000000000001 %r 1.00000000001e-4 -> 0.000100000000001 %r 1.0000000001e-4 -> 0.00010000000001 %r 1e-4 -> 0.0001 %r 0.99999999999999999e-4 -> 0.0001 %r 0.9999999999999999e-4 -> 9.999999999999999e-05 %r 0.999999999999e-4 -> 9.99999999999e-05 %r 0.999e-4 -> 9.99e-05 %r 1e-5 -> 1e-05 ====================================== Python IEEE 754 floating point support ====================================== >>> from sys import float_info as FI >>> from math import * >>> PI = pi >>> E = e You must never compare two floats with == because you are not going to get what you expect. We treat two floats as equal if the difference between them is small than epsilon. >>> EPS = 1E-15 >>> def equal(x, y): ... """Almost equal helper for floats""" ... return abs(x - y) < EPS NaNs and INFs ============= In Python 2.6 and newer NaNs (not a number) and infinity can be constructed from the strings 'inf' and 'nan'. >>> INF = float('inf') >>> NINF = float('-inf') >>> NAN = float('nan') >>> INF inf >>> NINF -inf >>> NAN nan The math module's ``isnan`` and ``isinf`` functions can be used to detect INF and NAN: >>> isinf(INF), isinf(NINF), isnan(NAN) (True, True, True) >>> INF == -NINF True Infinity -------- Ambiguous operations like ``0 * inf`` or ``inf - inf`` result in NaN. >>> INF * 0 nan >>> INF - INF nan >>> INF / INF nan However unambigous operations with inf return inf: >>> INF * INF inf >>> 1.5 * INF inf >>> 0.5 * INF inf >>> INF / 1000 inf Not a Number ------------ NaNs are never equal to another number, even itself >>> NAN == NAN False >>> NAN < 0 False >>> NAN >= 0 False All operations involving a NaN return a NaN except for nan**0 and 1**nan. >>> 1 + NAN nan >>> 1 * NAN nan >>> 0 * NAN nan >>> 1 ** NAN 1.0 >>> NAN ** 0 1.0 >>> 0 ** NAN nan >>> (1.0 + FI.epsilon) * NAN nan Misc Functions ============== The power of 1 raised to x is always 1.0, even for special values like 0, infinity and NaN. >>> pow(1, 0) 1.0 >>> pow(1, INF) 1.0 >>> pow(1, -INF) 1.0 >>> pow(1, NAN) 1.0 The power of 0 raised to x is defined as 0, if x is positive. Negative values are a domain error or zero division error and NaN result in a silent NaN. >>> pow(0, 0) 1.0 >>> pow(0, INF) 0.0 >>> pow(0, -INF) Traceback (most recent call last): ... ValueError: math domain error >>> 0 ** -1 Traceback (most recent call last): ... ZeroDivisionError: 0.0 cannot be raised to a negative power >>> pow(0, NAN) nan Trigonometric Functions ======================= >>> sin(INF) Traceback (most recent call last): ... ValueError: math domain error >>> sin(NINF) Traceback (most recent call last): ... ValueError: math domain error >>> sin(NAN) nan >>> cos(INF) Traceback (most recent call last): ... ValueError: math domain error >>> cos(NINF) Traceback (most recent call last): ... ValueError: math domain error >>> cos(NAN) nan >>> tan(INF) Traceback (most recent call last): ... ValueError: math domain error >>> tan(NINF) Traceback (most recent call last): ... ValueError: math domain error >>> tan(NAN) nan Neither pi nor tan are exact, but you can assume that tan(pi/2) is a large value and tan(pi) is a very small value: >>> tan(PI/2) > 1E10 True >>> -tan(-PI/2) > 1E10 True >>> tan(PI) < 1E-15 True >>> asin(NAN), acos(NAN), atan(NAN) (nan, nan, nan) >>> asin(INF), asin(NINF) Traceback (most recent call last): ... ValueError: math domain error >>> acos(INF), acos(NINF) Traceback (most recent call last): ... ValueError: math domain error >>> equal(atan(INF), PI/2), equal(atan(NINF), -PI/2) (True, True) Hyberbolic Functions ==================== This directory contains test cases that are known to leak references. The idea is that you can import these modules while in the interpreter and call the leak function repeatedly. This will only be helpful if the interpreter was built in debug mode. If the total ref count doesn't increase, the bug has been fixed and the file should be removed from the repository. Note: be careful to check for cyclic garbage. Sometimes it may be helpful to define the leak function like: def leak(): def inner_leak(): # this is the function that leaks, but also creates cycles inner_leak() gc.collect() ; gc.collect() ; gc.collect() Here's an example interpreter session for test_gestalt which still leaks: >>> from test.leakers.test_gestalt import leak [24275 refs] >>> leak() [28936 refs] >>> leak() [28938 refs] >>> leak() [28940 refs] >>> Once the leak is fixed, the test case should be moved into an appropriate test (even if it was originally from the test suite). This ensures the regression doesn't happen again. And if it does, it should be easier to track down. # Mailcap file for test_mailcap; based on RFC 1524 # Referred to by test_mailcap.py # # This is a comment. # application/frame; showframe %s; print="cat %s | lp" application/postscript; ps-to-terminal %s;\ needsterminal application/postscript; ps-to-terminal %s; \ compose=idraw %s application/x-dvi; xdvi %s application/x-movie; movieplayer %s; compose=moviemaker %s; \ description="Movie"; \ x11-bitmap="/usr/lib/Zmail/bitmaps/movie.xbm" application/*; echo "This is \"%t\" but \ is 50 \% Greek to me" \; cat %s; copiousoutput audio/basic; showaudio %s; compose=audiocompose %s; edit=audiocompose %s;\ description="An audio fragment" audio/* ; /usr/local/bin/showaudio %t image/rgb; display %s #image/gif; display %s image/x-xwindowdump; display %s # The continuation char shouldn't \ # make a difference in a comment. message/external-body; showexternal %s %{access-type} %{name} %{site} \ %{directory} %{mode} %{server}; needsterminal; composetyped = extcompose %s; \ description="A reference to data stored in an external location" text/richtext; shownonascii iso-8859-8 -e richtext -p %s; test=test "`echo \ %{charset} | tr '[A-Z]' '[a-z]'`" = iso-8859-8; copiousoutput video/mpeg; mpeg_play %s video/*; animate %s -- Testcases for functions in math. -- -- Each line takes the form: -- -- -> -- -- where: -- -- is a short name identifying the test, -- -- is the function to be tested (exp, cos, asinh, ...), -- -- is a string representing a floating-point value -- -- is the expected (ideal) output value, again -- represented as a string. -- -- is a list of the floating-point flags required by C99 -- -- The possible flags are: -- -- divide-by-zero : raised when a finite input gives a -- mathematically infinite result. -- -- overflow : raised when a finite input gives a finite result that -- is too large to fit in the usual range of an IEEE 754 double. -- -- invalid : raised for invalid inputs (e.g., sqrt(-1)) -- -- ignore-sign : indicates that the sign of the result is -- unspecified; e.g., if the result is given as inf, -- then both -inf and inf should be accepted as correct. -- -- Flags may appear in any order. -- -- Lines beginning with '--' (like this one) start a comment, and are -- ignored. Blank lines, or lines containing only whitespace, are also -- ignored. -- Many of the values below were computed with the help of -- version 2.4 of the MPFR library for multiple-precision -- floating-point computations with correct rounding. All output -- values in this file are (modulo yet-to-be-discovered bugs) -- correctly rounded, provided that each input and output decimal -- floating-point value below is interpreted as a representation of -- the corresponding nearest IEEE 754 double-precision value. See the -- MPFR homepage at http://www.mpfr.org for more information about the -- MPFR project. ------------------------- -- erf: error function -- ------------------------- erf0000 erf 0.0 -> 0.0 erf0001 erf -0.0 -> -0.0 erf0002 erf inf -> 1.0 erf0003 erf -inf -> -1.0 erf0004 erf nan -> nan -- tiny values erf0010 erf 1e-308 -> 1.1283791670955125e-308 erf0011 erf 5e-324 -> 4.9406564584124654e-324 erf0012 erf 1e-10 -> 1.1283791670955126e-10 -- small integers erf0020 erf 1 -> 0.84270079294971489 erf0021 erf 2 -> 0.99532226501895271 erf0022 erf 3 -> 0.99997790950300136 erf0023 erf 4 -> 0.99999998458274209 erf0024 erf 5 -> 0.99999999999846256 erf0025 erf 6 -> 1.0 erf0030 erf -1 -> -0.84270079294971489 erf0031 erf -2 -> -0.99532226501895271 erf0032 erf -3 -> -0.99997790950300136 erf0033 erf -4 -> -0.99999998458274209 erf0034 erf -5 -> -0.99999999999846256 erf0035 erf -6 -> -1.0 -- huge values should all go to +/-1, depending on sign erf0040 erf -40 -> -1.0 erf0041 erf 1e16 -> 1.0 erf0042 erf -1e150 -> -1.0 erf0043 erf 1.7e308 -> 1.0 -- Issue 8986: inputs x with exp(-x*x) near the underflow threshold -- incorrectly signalled overflow on some platforms. erf0100 erf 26.2 -> 1.0 erf0101 erf 26.4 -> 1.0 erf0102 erf 26.6 -> 1.0 erf0103 erf 26.8 -> 1.0 erf0104 erf 27.0 -> 1.0 erf0105 erf 27.2 -> 1.0 erf0106 erf 27.4 -> 1.0 erf0107 erf 27.6 -> 1.0 erf0110 erf -26.2 -> -1.0 erf0111 erf -26.4 -> -1.0 erf0112 erf -26.6 -> -1.0 erf0113 erf -26.8 -> -1.0 erf0114 erf -27.0 -> -1.0 erf0115 erf -27.2 -> -1.0 erf0116 erf -27.4 -> -1.0 erf0117 erf -27.6 -> -1.0 ---------------------------------------- -- erfc: complementary error function -- ---------------------------------------- erfc0000 erfc 0.0 -> 1.0 erfc0001 erfc -0.0 -> 1.0 erfc0002 erfc inf -> 0.0 erfc0003 erfc -inf -> 2.0 erfc0004 erfc nan -> nan -- tiny values erfc0010 erfc 1e-308 -> 1.0 erfc0011 erfc 5e-324 -> 1.0 erfc0012 erfc 1e-10 -> 0.99999999988716204 -- small integers erfc0020 erfc 1 -> 0.15729920705028513 erfc0021 erfc 2 -> 0.0046777349810472662 erfc0022 erfc 3 -> 2.2090496998585441e-05 erfc0023 erfc 4 -> 1.541725790028002e-08 erfc0024 erfc 5 -> 1.5374597944280349e-12 erfc0025 erfc 6 -> 2.1519736712498913e-17 erfc0030 erfc -1 -> 1.8427007929497148 erfc0031 erfc -2 -> 1.9953222650189528 erfc0032 erfc -3 -> 1.9999779095030015 erfc0033 erfc -4 -> 1.9999999845827421 erfc0034 erfc -5 -> 1.9999999999984626 erfc0035 erfc -6 -> 2.0 -- as x -> infinity, erfc(x) behaves like exp(-x*x)/x/sqrt(pi) erfc0040 erfc 20 -> 5.3958656116079012e-176 erfc0041 erfc 25 -> 8.3001725711965228e-274 erfc0042 erfc 27 -> 5.2370464393526292e-319 erfc0043 erfc 28 -> 0.0 -- huge values erfc0050 erfc -40 -> 2.0 erfc0051 erfc 1e16 -> 0.0 erfc0052 erfc -1e150 -> 2.0 erfc0053 erfc 1.7e308 -> 0.0 -- Issue 8986: inputs x with exp(-x*x) near the underflow threshold -- incorrectly signalled overflow on some platforms. erfc0100 erfc 26.2 -> 1.6432507924389461e-300 erfc0101 erfc 26.4 -> 4.4017768588035426e-305 erfc0102 erfc 26.6 -> 1.0885125885442269e-309 erfc0103 erfc 26.8 -> 2.4849621571966629e-314 erfc0104 erfc 27.0 -> 5.2370464393526292e-319 erfc0105 erfc 27.2 -> 9.8813129168249309e-324 erfc0106 erfc 27.4 -> 0.0 erfc0107 erfc 27.6 -> 0.0 erfc0110 erfc -26.2 -> 2.0 erfc0111 erfc -26.4 -> 2.0 erfc0112 erfc -26.6 -> 2.0 erfc0113 erfc -26.8 -> 2.0 erfc0114 erfc -27.0 -> 2.0 erfc0115 erfc -27.2 -> 2.0 erfc0116 erfc -27.4 -> 2.0 erfc0117 erfc -27.6 -> 2.0 --------------------------------------------------------- -- lgamma: log of absolute value of the gamma function -- --------------------------------------------------------- -- special values lgam0000 lgamma 0.0 -> inf divide-by-zero lgam0001 lgamma -0.0 -> inf divide-by-zero lgam0002 lgamma inf -> inf lgam0003 lgamma -inf -> inf lgam0004 lgamma nan -> nan -- negative integers lgam0010 lgamma -1 -> inf divide-by-zero lgam0011 lgamma -2 -> inf divide-by-zero lgam0012 lgamma -1e16 -> inf divide-by-zero lgam0013 lgamma -1e300 -> inf divide-by-zero lgam0014 lgamma -1.79e308 -> inf divide-by-zero -- small positive integers give factorials lgam0020 lgamma 1 -> 0.0 lgam0021 lgamma 2 -> 0.0 lgam0022 lgamma 3 -> 0.69314718055994529 lgam0023 lgamma 4 -> 1.791759469228055 lgam0024 lgamma 5 -> 3.1780538303479458 lgam0025 lgamma 6 -> 4.7874917427820458 -- half integers lgam0030 lgamma 0.5 -> 0.57236494292470008 lgam0031 lgamma 1.5 -> -0.12078223763524522 lgam0032 lgamma 2.5 -> 0.28468287047291918 lgam0033 lgamma 3.5 -> 1.2009736023470743 lgam0034 lgamma -0.5 -> 1.2655121234846454 lgam0035 lgamma -1.5 -> 0.86004701537648098 lgam0036 lgamma -2.5 -> -0.056243716497674054 lgam0037 lgamma -3.5 -> -1.309006684993042 -- values near 0 lgam0040 lgamma 0.1 -> 2.252712651734206 lgam0041 lgamma 0.01 -> 4.5994798780420219 lgam0042 lgamma 1e-8 -> 18.420680738180209 lgam0043 lgamma 1e-16 -> 36.841361487904734 lgam0044 lgamma 1e-30 -> 69.077552789821368 lgam0045 lgamma 1e-160 -> 368.41361487904732 lgam0046 lgamma 1e-308 -> 709.19620864216608 lgam0047 lgamma 5.6e-309 -> 709.77602713741896 lgam0048 lgamma 5.5e-309 -> 709.79404564292167 lgam0049 lgamma 1e-309 -> 711.49879373516012 lgam0050 lgamma 1e-323 -> 743.74692474082133 lgam0051 lgamma 5e-324 -> 744.44007192138122 lgam0060 lgamma -0.1 -> 2.3689613327287886 lgam0061 lgamma -0.01 -> 4.6110249927528013 lgam0062 lgamma -1e-8 -> 18.420680749724522 lgam0063 lgamma -1e-16 -> 36.841361487904734 lgam0064 lgamma -1e-30 -> 69.077552789821368 lgam0065 lgamma -1e-160 -> 368.41361487904732 lgam0066 lgamma -1e-308 -> 709.19620864216608 lgam0067 lgamma -5.6e-309 -> 709.77602713741896 lgam0068 lgamma -5.5e-309 -> 709.79404564292167 lgam0069 lgamma -1e-309 -> 711.49879373516012 lgam0070 lgamma -1e-323 -> 743.74692474082133 lgam0071 lgamma -5e-324 -> 744.44007192138122 -- values near negative integers lgam0080 lgamma -0.99999999999999989 -> 36.736800569677101 lgam0081 lgamma -1.0000000000000002 -> 36.043653389117154 lgam0082 lgamma -1.9999999999999998 -> 35.350506208557213 lgam0083 lgamma -2.0000000000000004 -> 34.657359027997266 lgam0084 lgamma -100.00000000000001 -> -331.85460524980607 lgam0085 lgamma -99.999999999999986 -> -331.85460524980596 -- large inputs lgam0100 lgamma 170 -> 701.43726380873704 lgam0101 lgamma 171 -> 706.57306224578736 lgam0102 lgamma 171.624 -> 709.78077443669895 lgam0103 lgamma 171.625 -> 709.78591682948365 lgam0104 lgamma 172 -> 711.71472580228999 lgam0105 lgamma 2000 -> 13198.923448054265 lgam0106 lgamma 2.55998332785163e305 -> 1.7976931348623099e+308 lgam0107 lgamma 2.55998332785164e305 -> inf overflow lgam0108 lgamma 1.7e308 -> inf overflow -- inputs for which gamma(x) is tiny lgam0120 lgamma -100.5 -> -364.90096830942736 lgam0121 lgamma -160.5 -> -656.88005261126432 lgam0122 lgamma -170.5 -> -707.99843314507882 lgam0123 lgamma -171.5 -> -713.14301641168481 lgam0124 lgamma -176.5 -> -738.95247590846486 lgam0125 lgamma -177.5 -> -744.13144651738037 lgam0126 lgamma -178.5 -> -749.3160351186001 lgam0130 lgamma -1000.5 -> -5914.4377011168517 lgam0131 lgamma -30000.5 -> -279278.6629959144 lgam0132 lgamma -4503599627370495.5 -> -1.5782258434492883e+17 -- results close to 0: positive argument ... lgam0150 lgamma 0.99999999999999989 -> 6.4083812134800075e-17 lgam0151 lgamma 1.0000000000000002 -> -1.2816762426960008e-16 lgam0152 lgamma 1.9999999999999998 -> -9.3876980655431170e-17 lgam0153 lgamma 2.0000000000000004 -> 1.8775396131086244e-16 -- ... and negative argument lgam0160 lgamma -2.7476826467 -> -5.2477408147689136e-11 lgam0161 lgamma -2.457024738 -> 3.3464637541912932e-10 --------------------------- -- gamma: Gamma function -- --------------------------- -- special values gam0000 gamma 0.0 -> inf divide-by-zero gam0001 gamma -0.0 -> -inf divide-by-zero gam0002 gamma inf -> inf gam0003 gamma -inf -> nan invalid gam0004 gamma nan -> nan -- negative integers inputs are invalid gam0010 gamma -1 -> nan invalid gam0011 gamma -2 -> nan invalid gam0012 gamma -1e16 -> nan invalid gam0013 gamma -1e300 -> nan invalid -- small positive integers give factorials gam0020 gamma 1 -> 1 gam0021 gamma 2 -> 1 gam0022 gamma 3 -> 2 gam0023 gamma 4 -> 6 gam0024 gamma 5 -> 24 gam0025 gamma 6 -> 120 -- half integers gam0030 gamma 0.5 -> 1.7724538509055161 gam0031 gamma 1.5 -> 0.88622692545275805 gam0032 gamma 2.5 -> 1.3293403881791370 gam0033 gamma 3.5 -> 3.3233509704478426 gam0034 gamma -0.5 -> -3.5449077018110322 gam0035 gamma -1.5 -> 2.3632718012073548 gam0036 gamma -2.5 -> -0.94530872048294190 gam0037 gamma -3.5 -> 0.27008820585226911 -- values near 0 gam0040 gamma 0.1 -> 9.5135076986687306 gam0041 gamma 0.01 -> 99.432585119150602 gam0042 gamma 1e-8 -> 99999999.422784343 gam0043 gamma 1e-16 -> 10000000000000000 gam0044 gamma 1e-30 -> 9.9999999999999988e+29 gam0045 gamma 1e-160 -> 1.0000000000000000e+160 gam0046 gamma 1e-308 -> 1.0000000000000000e+308 gam0047 gamma 5.6e-309 -> 1.7857142857142848e+308 gam0048 gamma 5.5e-309 -> inf overflow gam0049 gamma 1e-309 -> inf overflow gam0050 gamma 1e-323 -> inf overflow gam0051 gamma 5e-324 -> inf overflow gam0060 gamma -0.1 -> -10.686287021193193 gam0061 gamma -0.01 -> -100.58719796441078 gam0062 gamma -1e-8 -> -100000000.57721567 gam0063 gamma -1e-16 -> -10000000000000000 gam0064 gamma -1e-30 -> -9.9999999999999988e+29 gam0065 gamma -1e-160 -> -1.0000000000000000e+160 gam0066 gamma -1e-308 -> -1.0000000000000000e+308 gam0067 gamma -5.6e-309 -> -1.7857142857142848e+308 gam0068 gamma -5.5e-309 -> -inf overflow gam0069 gamma -1e-309 -> -inf overflow gam0070 gamma -1e-323 -> -inf overflow gam0071 gamma -5e-324 -> -inf overflow -- values near negative integers gam0080 gamma -0.99999999999999989 -> -9007199254740992.0 gam0081 gamma -1.0000000000000002 -> 4503599627370495.5 gam0082 gamma -1.9999999999999998 -> 2251799813685248.5 gam0083 gamma -2.0000000000000004 -> -1125899906842623.5 gam0084 gamma -100.00000000000001 -> -7.5400833348831090e-145 gam0085 gamma -99.999999999999986 -> 7.5400833348840962e-145 -- large inputs gam0100 gamma 170 -> 4.2690680090047051e+304 gam0101 gamma 171 -> 7.2574156153079990e+306 gam0102 gamma 171.624 -> 1.7942117599248104e+308 gam0103 gamma 171.625 -> inf overflow gam0104 gamma 172 -> inf overflow gam0105 gamma 2000 -> inf overflow gam0106 gamma 1.7e308 -> inf overflow -- inputs for which gamma(x) is tiny gam0120 gamma -100.5 -> -3.3536908198076787e-159 gam0121 gamma -160.5 -> -5.2555464470078293e-286 gam0122 gamma -170.5 -> -3.3127395215386074e-308 gam0123 gamma -171.5 -> 1.9316265431711902e-310 gam0124 gamma -176.5 -> -1.1956388629358166e-321 gam0125 gamma -177.5 -> 4.9406564584124654e-324 gam0126 gamma -178.5 -> -0.0 gam0127 gamma -179.5 -> 0.0 gam0128 gamma -201.0001 -> 0.0 gam0129 gamma -202.9999 -> -0.0 gam0130 gamma -1000.5 -> -0.0 gam0131 gamma -1000000000.3 -> -0.0 gam0132 gamma -4503599627370495.5 -> 0.0 -- inputs that cause problems for the standard reflection formula, -- thanks to loss of accuracy in 1-x gam0140 gamma -63.349078729022985 -> 4.1777971677761880e-88 gam0141 gamma -127.45117632943295 -> 1.1831110896236810e-214 ----------------------------------------------------------- -- log1p: log(1 + x), without precision loss for small x -- ----------------------------------------------------------- -- special values log1p0000 log1p 0.0 -> 0.0 log1p0001 log1p -0.0 -> -0.0 log1p0002 log1p inf -> inf log1p0003 log1p -inf -> nan invalid log1p0004 log1p nan -> nan -- singularity at -1.0 log1p0010 log1p -1.0 -> -inf divide-by-zero log1p0011 log1p -0.9999999999999999 -> -36.736800569677101 -- finite values < 1.0 are invalid log1p0020 log1p -1.0000000000000002 -> nan invalid log1p0021 log1p -1.1 -> nan invalid log1p0022 log1p -2.0 -> nan invalid log1p0023 log1p -1e300 -> nan invalid -- tiny x: log1p(x) ~ x log1p0110 log1p 5e-324 -> 5e-324 log1p0111 log1p 1e-320 -> 1e-320 log1p0112 log1p 1e-300 -> 1e-300 log1p0113 log1p 1e-150 -> 1e-150 log1p0114 log1p 1e-20 -> 1e-20 log1p0120 log1p -5e-324 -> -5e-324 log1p0121 log1p -1e-320 -> -1e-320 log1p0122 log1p -1e-300 -> -1e-300 log1p0123 log1p -1e-150 -> -1e-150 log1p0124 log1p -1e-20 -> -1e-20 -- some (mostly) random small and moderate-sized values log1p0200 log1p -0.89156889782277482 -> -2.2216403106762863 log1p0201 log1p -0.23858496047770464 -> -0.27257668276980057 log1p0202 log1p -0.011641726191307515 -> -0.011710021654495657 log1p0203 log1p -0.0090126398571693817 -> -0.0090534993825007650 log1p0204 log1p -0.00023442805985712781 -> -0.00023445554240995693 log1p0205 log1p -1.5672870980936349e-5 -> -1.5672993801662046e-5 log1p0206 log1p -7.9650013274825295e-6 -> -7.9650330482740401e-6 log1p0207 log1p -2.5202948343227410e-7 -> -2.5202951519170971e-7 log1p0208 log1p -8.2446372820745855e-11 -> -8.2446372824144559e-11 log1p0209 log1p -8.1663670046490789e-12 -> -8.1663670046824230e-12 log1p0210 log1p 7.0351735084656292e-18 -> 7.0351735084656292e-18 log1p0211 log1p 5.2732161907375226e-12 -> 5.2732161907236188e-12 log1p0212 log1p 1.0000000000000000e-10 -> 9.9999999995000007e-11 log1p0213 log1p 2.1401273266000197e-9 -> 2.1401273243099470e-9 log1p0214 log1p 1.2668914653979560e-8 -> 1.2668914573728861e-8 log1p0215 log1p 1.6250007816299069e-6 -> 1.6249994613175672e-6 log1p0216 log1p 8.3740495645839399e-6 -> 8.3740145024266269e-6 log1p0217 log1p 3.0000000000000001e-5 -> 2.9999550008999799e-5 log1p0218 log1p 0.0070000000000000001 -> 0.0069756137364252423 log1p0219 log1p 0.013026235315053002 -> 0.012942123564008787 log1p0220 log1p 0.013497160797236184 -> 0.013406885521915038 log1p0221 log1p 0.027625599078135284 -> 0.027250897463483054 log1p0222 log1p 0.14179687245544870 -> 0.13260322540908789 -- large values log1p0300 log1p 1.7976931348623157e+308 -> 709.78271289338397 log1p0301 log1p 1.0000000000000001e+300 -> 690.77552789821368 log1p0302 log1p 1.0000000000000001e+70 -> 161.18095650958321 log1p0303 log1p 10000000000.000000 -> 23.025850930040455 -- other values transferred from testLog1p in test_math log1p0400 log1p -0.63212055882855767 -> -1.0000000000000000 log1p0401 log1p 1.7182818284590451 -> 1.0000000000000000 log1p0402 log1p 1.0000000000000000 -> 0.69314718055994529 log1p0403 log1p 1.2379400392853803e+27 -> 62.383246250395075 ----------------------------------------------------------- -- expm1: exp(x) - 1, without precision loss for small x -- ----------------------------------------------------------- -- special values expm10000 expm1 0.0 -> 0.0 expm10001 expm1 -0.0 -> -0.0 expm10002 expm1 inf -> inf expm10003 expm1 -inf -> -1.0 expm10004 expm1 nan -> nan -- expm1(x) ~ x for tiny x expm10010 expm1 5e-324 -> 5e-324 expm10011 expm1 1e-320 -> 1e-320 expm10012 expm1 1e-300 -> 1e-300 expm10013 expm1 1e-150 -> 1e-150 expm10014 expm1 1e-20 -> 1e-20 expm10020 expm1 -5e-324 -> -5e-324 expm10021 expm1 -1e-320 -> -1e-320 expm10022 expm1 -1e-300 -> -1e-300 expm10023 expm1 -1e-150 -> -1e-150 expm10024 expm1 -1e-20 -> -1e-20 -- moderate sized values, where direct evaluation runs into trouble expm10100 expm1 1e-10 -> 1.0000000000500000e-10 expm10101 expm1 -9.9999999999999995e-08 -> -9.9999995000000163e-8 expm10102 expm1 3.0000000000000001e-05 -> 3.0000450004500034e-5 expm10103 expm1 -0.0070000000000000001 -> -0.0069755570667648951 expm10104 expm1 -0.071499208740094633 -> -0.069002985744820250 expm10105 expm1 -0.063296004180116799 -> -0.061334416373633009 expm10106 expm1 0.02390954035597756 -> 0.024197665143819942 expm10107 expm1 0.085637352649044901 -> 0.089411184580357767 expm10108 expm1 0.5966174947411006 -> 0.81596588596501485 expm10109 expm1 0.30247206212075139 -> 0.35319987035848677 expm10110 expm1 0.74574727375889516 -> 1.1080161116737459 expm10111 expm1 0.97767512926555711 -> 1.6582689207372185 expm10112 expm1 0.8450154566787712 -> 1.3280137976535897 expm10113 expm1 -0.13979260323125264 -> -0.13046144381396060 expm10114 expm1 -0.52899322039643271 -> -0.41080213643695923 expm10115 expm1 -0.74083261478900631 -> -0.52328317124797097 expm10116 expm1 -0.93847766984546055 -> -0.60877704724085946 expm10117 expm1 10.0 -> 22025.465794806718 expm10118 expm1 27.0 -> 532048240600.79865 expm10119 expm1 123 -> 2.6195173187490626e+53 expm10120 expm1 -12.0 -> -0.99999385578764666 expm10121 expm1 -35.100000000000001 -> -0.99999999999999944 -- extreme negative values expm10201 expm1 -37.0 -> -0.99999999999999989 expm10200 expm1 -38.0 -> -1.0 expm10210 expm1 -710.0 -> -1.0 -- the formula expm1(x) = 2 * sinh(x/2) * exp(x/2) doesn't work so -- well when exp(x/2) is subnormal or underflows to zero; check we're -- not using it! expm10211 expm1 -1420.0 -> -1.0 expm10212 expm1 -1450.0 -> -1.0 expm10213 expm1 -1500.0 -> -1.0 expm10214 expm1 -1e50 -> -1.0 expm10215 expm1 -1.79e308 -> -1.0 -- extreme positive values expm10300 expm1 300 -> 1.9424263952412558e+130 expm10301 expm1 700 -> 1.0142320547350045e+304 -- the next test (expm10302) is disabled because it causes failure on -- OS X 10.4/Intel: apparently all values over 709.78 produce an -- overflow on that platform. See issue #7575. -- expm10302 expm1 709.78271289328393 -> 1.7976931346824240e+308 expm10303 expm1 709.78271289348402 -> inf overflow expm10304 expm1 1000 -> inf overflow expm10305 expm1 1e50 -> inf overflow expm10306 expm1 1.79e308 -> inf overflow -- weaker version of expm10302 expm10307 expm1 709.5 -> 1.3549863193146328e+308 ------------------------- -- log2: log to base 2 -- ------------------------- -- special values log20000 log2 0.0 -> -inf divide-by-zero log20001 log2 -0.0 -> -inf divide-by-zero log20002 log2 inf -> inf log20003 log2 -inf -> nan invalid log20004 log2 nan -> nan -- exact value at 1.0 log20010 log2 1.0 -> 0.0 -- negatives log20020 log2 -5e-324 -> nan invalid log20021 log2 -1.0 -> nan invalid log20022 log2 -1.7e-308 -> nan invalid -- exact values at powers of 2 log20100 log2 2.0 -> 1.0 log20101 log2 4.0 -> 2.0 log20102 log2 8.0 -> 3.0 log20103 log2 16.0 -> 4.0 log20104 log2 32.0 -> 5.0 log20105 log2 64.0 -> 6.0 log20106 log2 128.0 -> 7.0 log20107 log2 256.0 -> 8.0 log20108 log2 512.0 -> 9.0 log20109 log2 1024.0 -> 10.0 log20110 log2 2048.0 -> 11.0 log20200 log2 0.5 -> -1.0 log20201 log2 0.25 -> -2.0 log20202 log2 0.125 -> -3.0 log20203 log2 0.0625 -> -4.0 -- values close to 1.0 log20300 log2 1.0000000000000002 -> 3.2034265038149171e-16 log20301 log2 1.0000000001 -> 1.4426951601859516e-10 log20302 log2 1.00001 -> 1.4426878274712997e-5 log20310 log2 0.9999999999999999 -> -1.6017132519074588e-16 log20311 log2 0.9999999999 -> -1.4426951603302210e-10 log20312 log2 0.99999 -> -1.4427022544056922e-5 -- tiny values log20400 log2 5e-324 -> -1074.0 log20401 log2 1e-323 -> -1073.0 log20402 log2 1.5e-323 -> -1072.4150374992789 log20403 log2 2e-323 -> -1072.0 log20410 log2 1e-308 -> -1023.1538532253076 log20411 log2 2.2250738585072014e-308 -> -1022.0 log20412 log2 4.4501477170144028e-308 -> -1021.0 log20413 log2 1e-307 -> -1019.8319251304202 -- huge values log20500 log2 1.7976931348623157e+308 -> 1024.0 log20501 log2 1.7e+308 -> 1023.9193879716706 log20502 log2 8.9884656743115795e+307 -> 1023.0 -- selection of random values log20600 log2 -7.2174324841039838e+289 -> nan invalid log20601 log2 -2.861319734089617e+265 -> nan invalid log20602 log2 -4.3507646894008962e+257 -> nan invalid log20603 log2 -6.6717265307520224e+234 -> nan invalid log20604 log2 -3.9118023786619294e+229 -> nan invalid log20605 log2 -1.5478221302505161e+206 -> nan invalid log20606 log2 -1.4380485131364602e+200 -> nan invalid log20607 log2 -3.7235198730382645e+185 -> nan invalid log20608 log2 -1.0472242235095724e+184 -> nan invalid log20609 log2 -5.0141781956163884e+160 -> nan invalid log20610 log2 -2.1157958031160324e+124 -> nan invalid log20611 log2 -7.9677558612567718e+90 -> nan invalid log20612 log2 -5.5553906194063732e+45 -> nan invalid log20613 log2 -16573900952607.953 -> nan invalid log20614 log2 -37198371019.888618 -> nan invalid log20615 log2 -6.0727115121422674e-32 -> nan invalid log20616 log2 -2.5406841656526057e-38 -> nan invalid log20617 log2 -4.9056766703267657e-43 -> nan invalid log20618 log2 -2.1646786075228305e-71 -> nan invalid log20619 log2 -2.470826790488573e-78 -> nan invalid log20620 log2 -3.8661709303489064e-165 -> nan invalid log20621 log2 -1.0516496976649986e-182 -> nan invalid log20622 log2 -1.5935458614317996e-255 -> nan invalid log20623 log2 -2.8750977267336654e-293 -> nan invalid log20624 log2 -7.6079466794732585e-296 -> nan invalid log20625 log2 3.2073253539988545e-307 -> -1018.1505544209213 log20626 log2 1.674937885472249e-244 -> -809.80634755783126 log20627 log2 1.0911259044931283e-214 -> -710.76679472274213 log20628 log2 2.0275372624809709e-154 -> -510.55719818383272 log20629 log2 7.3926087369631841e-115 -> -379.13564735312292 log20630 log2 1.3480198206342423e-86 -> -285.25497445094436 log20631 log2 8.9927384655719947e-83 -> -272.55127136401637 log20632 log2 3.1452398713597487e-60 -> -197.66251564496875 log20633 log2 7.0706573215457351e-55 -> -179.88420087782217 log20634 log2 3.1258285390731669e-49 -> -161.13023800505653 log20635 log2 8.2253046627829942e-41 -> -133.15898277355879 log20636 log2 7.8691367397519897e+49 -> 165.75068202732419 log20637 log2 2.9920561983925013e+64 -> 214.18453534573757 log20638 log2 4.7827254553946841e+77 -> 258.04629628445673 log20639 log2 3.1903566496481868e+105 -> 350.47616767491166 log20640 log2 5.6195082449502419e+113 -> 377.86831861008250 log20641 log2 9.9625658250651047e+125 -> 418.55752921228753 log20642 log2 2.7358945220961532e+145 -> 483.13158636923413 log20643 log2 2.785842387926931e+174 -> 579.49360214860280 log20644 log2 2.4169172507252751e+193 -> 642.40529039289652 log20645 log2 3.1689091206395632e+205 -> 682.65924573798395 log20646 log2 2.535995592365391e+208 -> 692.30359597460460 log20647 log2 6.2011236566089916e+233 -> 776.64177576730913 log20648 log2 2.1843274820677632e+253 -> 841.57499717289647 log20649 log2 8.7493931063474791e+297 -> 989.74182713073981 This is a sample doctest in a text file. In this example, we'll rely on a global variable being set for us already: >>> favorite_color 'blue' We can make this fail by disabling the blank-line feature. >>> if 1: ... print('a') ... print() ... print('b') a b This is a sample doctest in a text file. In this example, we'll rely on some silly setup: >>> import test.test_doctest >>> test.test_doctest.sillySetup True This test also has some (random) encoded (utf-8) unicode text: ЉЊЈЁЂ This doesn't cause a problem in the tect surrounding the examples, but we include it here (in this test text file) to make sure. :) Here we check that `__file__` is provided: >>> type(__file__) This is a sample doctest in a text file that contains non-ASCII characters. This file is encoded using UTF-8. In order to get this test to pass, we have to manually specify the encoding. >>> 'föö' 'f\xf6\xf6' >>> 'bąr' 'b\u0105r' Return-Path: Delivered-To: bbb@zzz.org Received: by mail.zzz.org (Postfix, from userid 889) id 27CEAD38CC; Fri, 4 May 2001 14:05:44 -0400 (EDT) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15090.61304.110929.45684@aaa.zzz.org> From: bbb@ddd.com (John X. Doe) To: bbb@zzz.org Subject: This is a test message Date: Fri, 4 May 2001 14:05:44 -0400 Hi, Do you like this message? -Me MIME-version: 1.0 From: ppp-request@zzz.org Sender: ppp-admin@zzz.org To: ppp@zzz.org Subject: Ppp digest, Vol 1 #2 - 5 msgs Date: Fri, 20 Apr 2001 20:18:00 -0400 (EDT) X-Mailer: Mailman v2.0.4 X-Mailman-Version: 2.0.4 Content-Type: multipart/mixed; boundary="192.168.1.2.889.32614.987812255.500.21814" --192.168.1.2.889.32614.987812255.500.21814 Content-type: text/plain; charset=us-ascii Content-description: Masthead (Ppp digest, Vol 1 #2) Send Ppp mailing list submissions to ppp@zzz.org To subscribe or unsubscribe via the World Wide Web, visit http://www.zzz.org/mailman/listinfo/ppp or, via email, send a message with subject or body 'help' to ppp-request@zzz.org You can reach the person managing the list at ppp-admin@zzz.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Ppp digest..." --192.168.1.2.889.32614.987812255.500.21814 Content-type: text/plain; charset=us-ascii Content-description: Today's Topics (5 msgs) Today's Topics: 1. testing #1 (Barry A. Warsaw) 2. testing #2 (Barry A. Warsaw) 3. testing #3 (Barry A. Warsaw) 4. testing #4 (Barry A. Warsaw) 5. testing #5 (Barry A. Warsaw) --192.168.1.2.889.32614.987812255.500.21814 Content-Type: multipart/digest; boundary="__--__--" --__--__-- Message: 1 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Fri, 20 Apr 2001 20:16:13 -0400 To: ppp@zzz.org From: barry@digicool.com (Barry A. Warsaw) Subject: [Ppp] testing #1 Precedence: bulk hello --__--__-- Message: 2 Date: Fri, 20 Apr 2001 20:16:21 -0400 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: ppp@zzz.org From: barry@digicool.com (Barry A. Warsaw) Precedence: bulk hello --__--__-- Message: 3 Date: Fri, 20 Apr 2001 20:16:25 -0400 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: ppp@zzz.org From: barry@digicool.com (Barry A. Warsaw) Subject: [Ppp] testing #3 Precedence: bulk hello --__--__-- Message: 4 Date: Fri, 20 Apr 2001 20:16:28 -0400 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: ppp@zzz.org From: barry@digicool.com (Barry A. Warsaw) Subject: [Ppp] testing #4 Precedence: bulk hello --__--__-- Message: 5 Date: Fri, 20 Apr 2001 20:16:32 -0400 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: ppp@zzz.org From: barry@digicool.com (Barry A. Warsaw) Subject: [Ppp] testing #5 Precedence: bulk hello --__--__---- --192.168.1.2.889.32614.987812255.500.21814 Content-type: text/plain; charset=us-ascii Content-description: Digest Footer _______________________________________________ Ppp mailing list Ppp@zzz.org http://www.zzz.org/mailman/listinfo/ppp --192.168.1.2.889.32614.987812255.500.21814-- End of Ppp Digest Return-Path: Delivered-To: bbb@zzz.org Received: by mail.zzz.org (Postfix, from userid 889) id 27CEAD38CC; Fri, 4 May 2001 14:05:44 -0400 (EDT) Message-ID: <15090.61304.110929.45684@aaa.zzz.org> From: bbb@ddd.com (John X. Doe) To: bbb@zzz.org Subject: This is a test message Date: Fri, 4 May 2001 14:05:44 -0400 Hi, Do you like this message? -Me Return-Path: Delivered-To: barry@python.org Received: by mail.python.org (Postfix, from userid 889) id C2BF0D37C6; Tue, 11 Sep 2001 00:05:05 -0400 (EDT) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="h90VIIIKmx" Content-Transfer-Encoding: 7bit Message-ID: <15261.36209.358846.118674@anthem.python.org> From: barry@python.org (Barry A. Warsaw) To: barry@python.org Subject: a simple multipart Date: Tue, 11 Sep 2001 00:05:05 -0400 X-Mailer: VM 6.95 under 21.4 (patch 4) "Artificial Intelligence" XEmacs Lucid X-Attribution: BAW X-Oblique-Strategy: Make a door into a window --h90VIIIKmx Content-Type: text/plain Content-Disposition: inline; filename="msg.txt" Content-Transfer-Encoding: 7bit a simple kind of mirror to reflect upon our own --h90VIIIKmx Content-Type: text/plain Content-Disposition: inline; filename="msg.txt" Content-Transfer-Encoding: 7bit a simple kind of mirror to reflect upon our own --h90VIIIKmx-- From: foo Subject: bar To: baz MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="D1690A7AC1.996856090/mail.example.com" Message-Id: <20010803162810.0CA8AA7ACC@mail.example.com> This is a MIME-encapsulated message. --D1690A7AC1.996856090/mail.example.com Content-Type: text/plain Yadda yadda yadda --D1690A7AC1.996856090/mail.example.com Yadda yadda yadda --D1690A7AC1.996856090/mail.example.com Content-Type: message/rfc822 From: nobody@python.org Yadda yadda yadda --D1690A7AC1.996856090/mail.example.com-- Return-Path: Delivered-To: barry@python.org MIME-Version: 1.0 Content-Type: message/rfc822 Content-Description: forwarded message Content-Transfer-Encoding: 7bit Message-ID: <15265.9482.641338.555352@python.org> From: barry@python.org (Barry A. Warsaw) Sender: barry@python.org To: barry@python.org Subject: forwarded message from Barry A. Warsaw Date: Thu, 13 Sep 2001 17:28:42 -0400 X-Mailer: VM 6.95 under 21.4 (patch 4) "Artificial Intelligence" XEmacs Lucid X-Attribution: BAW X-Oblique-Strategy: Be dirty X-Url: http://barry.wooz.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-Path: Delivered-To: barry@python.org Message-ID: <15265.9468.713530.98441@python.org> From: barry@python.org (Barry A. Warsaw) Sender: barry@python.org To: barry@python.org Subject: testing Date: Thu, 13 Sep 2001 17:28:28 -0400 X-Mailer: VM 6.95 under 21.4 (patch 4) "Artificial Intelligence" XEmacs Lucid X-Attribution: BAW X-Oblique-Strategy: Spectrum analysis X-Url: http://barry.wooz.org MIME-Version: 1.0 From: Barry To: Dingus Lovers Subject: Here is your dingus fish Date: Fri, 20 Apr 2001 19:35:02 -0400 Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: text/plain; charset="us-ascii" Hi there, This is the dingus fish. --BOUNDARY Content-Type: image/gif; name="dingusfish.gif" Content-Transfer-Encoding: base64 content-disposition: attachment; filename="dingusfish.gif" R0lGODdhAAEAAfAAAP///wAAACwAAAAAAAEAAQAC/oSPqcvtD6OctNqLs968+w+G4kiW5omm6sq2 7gvH8kzX9o3n+s73/g8MCofEovGITGICTKbyCV0FDNOo9SqpQqpOrJfXzTQj2vD3TGtqL+NtGQ2f qTXmxzuOd7WXdcc9DyjU53ewFni4s0fGhdiYaEhGBelICTNoV1j5NUnFcrmUqemjNifJVWpaOqaI oFq3SspZsSraE7sHq3jr1MZqWvi662vxV4tD+pvKW6aLDOCLyur8PDwbanyDeq0N3DctbQYeLDvR RY6t95m6UB0d3mwIrV7e2VGNvjjffukeJp4w7F65KecGFsTHQGAygOrgrWs1jt28Rc88KESYcGLA /obvTkH6p+CinWJiJmIMqXGQwH/y4qk0SYjgQTczT3ajKZGfuI0uJ4kkVI/DT5s3/ejkxI0aT4Y+ YTYgWbImUaXk9nlLmnSh1qJiJFl0OpUqRK4oOy7NyRQtHWofhoYVxkwWXKUSn0YsS+fUV6lhqfYb 6ayd3Z5qQdG1B7bvQzaJjwUV2lixMUZ7JVsOlfjWVr/3NB/uFvnySBN6Dcb6rGwaRM3wsormw5cC M9NxWy/bWdufudCvy8bOAjXjVVwta/uO21sE5RHBCzNFXtgq9ORtH4eYjVP4Yryo026nvkFmCeyA B29efV6ravCMK5JwWd5897Qrx7ll38o6iHDZ/rXPR//feevhF4l7wjUGX3xq1eeRfM4RSJGBIV1D z1gKPkfWag3mVBVvva1RlX5bAJTPR/2YqNtw/FkIYYEi/pIZiAdpcxpoHtmnYYoZtvhUftzdx5ZX JSKDW405zkGcZzzGZ6KEv4FI224oDmijlEf+xp6MJK5ojY/ASeVUR+wsKRuJ+XFZ5o7ZeEime8t1 ouUsU6YjF5ZtUihhkGfCdFQLWQFJ3UXxmElfhQnR+eCdcDbkFZp6vTRmj56ApCihn5QGpaToNZmR n3NVSpZcQpZ2KEONusaiCsKAug0wkQbJSFO+PTSjneGxOuFjPlUk3ovWvdIerjUg9ZGIOtGq/qeX eCYrrCX+1UPsgTKGGRSbzd5q156d/gpfbJxe66eD5iQKrXj7RGgruGxs62qebBHUKS32CKluCiqZ qh+pmehmEb71noAUoe5e9Zm17S7773V10pjrtG4CmuurCV/n6zLK5turWNhqOvFXbjhZrMD0YhKe wR0zOyuvsh6MWrGoIuzvyWu5y1WIFAqmJselypxXh6dKLNOKEB98L88bS2rkNqqlKzCNJp9c0G0j Gzh0iRrCbHSXmPR643QS+4rWhgFmnSbSuXCjS0xAOWkU2UdLqyuUNfHSFdUouy3bm5i5GnDM3tG8 doJ4r5tqu3pPbRSVfvs8uJzeNXhp3n4j/tZ42SwH7eaWUUOjc3qFV9453UHTXZfcLH+OeNs5g36x lBnHvTm7EbMbLeuaLncao8vWCXimfo1o+843Ak6y4ChNeGntvAYvfLK4ezmoyNIbNCLTCXO9ZV3A E8/s88RczPzDwI4Ob7XZyl7+9Miban29h+tJZPrE21wgvBphDfrrfPdCTPKJD/y98L1rZwHcV6Jq Zab0metpuNIX/qAFPoz171WUaUb4HAhBSzHuHfjzHb3kha/2Cctis/ORArVHNYfFyYRH2pYIRzic isVOfPWD1b6mRTqpCRBozzof6UZVvFXRxWIr3GGrEviGYgyPMfahheiSaLs/9QeFu7oZ/ndSY8DD ya9x+uPed+7mxN2IzIISBOMLFYWVqC3Pew1T2nFuuCiwZS5/v6II10i4t1OJcUH2U9zxKodHsGGv Oa+zkvNUYUOa/TCCRutF9MzDwdlUMJADTCGSbDQ5OV4PTamDoPEi6Ecc/RF5RWwkcdSXvSOaDWSn I9LlvubFTQpuc6JKXLcKeb+xdbKRBnwREemXyjg6ME65aJiOuBgrktzykfPLJBKR9ClMavJ62/Ff BlNIyod9yX9wcSXexnXFpvkrbXk64xsx5Db7wXKP5fSgsvwIMM/9631VLBfkmtbHRXpqmtei52hG pUwSlo+BASQoeILDOBgREECxBBh5/iYmNsQ9dIv5+OI++QkqdsJPc3uykz5fkM+OraeekcQF7X4n B5S67za5U967PmooGQhUXfF7afXyCD7ONdRe17QogYjVx38uLwtrS6nhTnm15LQUnu9E2uK6CNI/ 1HOABj0ESwOjut4FEpFQpdNAm4K2LHnDWHNcmKB2ioKBogysVZtMO2nSxUdZ8Yk2kJc7URioLVI0 YgmtIwZj4LoeKemgnOnbUdGnzZ4Oa6scqiolBGqS6RgWNLu0RMhcaE6rhhU4hiuqFXPAG8fGwTPW FKeLMtdVmXLSs5YJGF/YeVm7rREMlY3UYE+yCxbaMXX8y15m5zVHq6GOKDMynzII/jdUHdyVqIy0 ifX2+r/EgtZcvRzSb72gU9ui87M2VecjKildW/aFqaYhKoryUjfB/g4qtyVuc60xFDGmCxwjW+qu zjuwl2GkOWn66+3QiiEctvd04OVvcCVzjgT7lrkvjVGKKHmmlDUKowSeikb5kK/mJReuWOxONx+s ULsl+Lqb0CVn0SrVyJ6wt4t6yTeSCafhPhAf0OXn6L60UMxiLolFAtmN35S2Ob1lZpQ1r/n0Qb5D oQ1zJiRVDgF8N3Q8TYfbi3DyWCy3lT1nxyBs6FT3S2GOzWRlxwKvlRP0RPJA9SjxEy0UoEnkA+M4 cnzLMJrBGWLFEaaUb5lvpqbq/loOaU5+DFuHPxo82/OZuM8FXG3oVNZhtWpMpb/0Xu5m/LfLhHZQ 7yuVI0MqZ7NE43imC8jH3IwGZlbPm0xkJYs7+2U48hXTsFSMqgGDvai0kLxyynKNT/waj+q1c1tz GjOpPBgdCSq3UKZxCSsqFIY+O6JbAWGWcV1pwqLyj5sGqCF1xb1F3varUWqrJv6cN3PrUXzijtfZ FshpBL3Xwr4GIPvU2N8EjrJgS1zl21rbXQMXeXc5jjFyrhpCzijSv/RQtyPSzHCFMhlME95fHglt pRsX+dfSQjUeHAlpWzJ5iOo79Ldnaxai6bXTcGO3fp07ri7HLEmXXPlYi8bv/qVxvNcdra6m7Rlb 6JBTb5fd66VhFRjGArh2n7R1rDW4P5NOT9K0I183T2scYkeZ3q/VFyLb09U9ajzXBS8Kgkhc4mBS kYY9cy3Vy9lUnuNJH8HGIclUilwnBtjUOH0gteGOZ4c/XNrhXLSYDyxfnD8z1pDy7rYRvDolhnbe UMzxCZUs40s6s7UIvBnLgc0+vKuOkIXeOrDymlp+Zxra4MZLBbVrqD/jTJ597pDmnw5c4+DbyB88 9Cg9DodYcSuMZT/114pptqc/EuTjRPvH/z5slzI3tluOEBBLqOXLOX+0I5929tO97wkvl/atCz+y xJrdwteW2FNW/NSmBP+f/maYtVs/bYyBC7Ox3jsYZHL05CIrBa/nS+b3bHfiYm4Ueil1YZZSgAUI fFZ1dxUmeA2oQRQ3RuGXNGLFV9/XbGFGPV6kfzk1TBBCd+izc7q1H+OHMJwmaBX2IQNYVAKHYepV SSGCe6CnbYHHETKGNe43EDvFgZr0gB/nVHPHZ80VV1ojOiI3XDvYIkl4ayo4bxQIgrFXWTvBI0nH VElWMuw2aLUWCRHHf8ymVCHjFlJnOSojfevCYyyyZDH0IcvHhrsnQ5O1OsWzONuVVKIxSxiFZ/tR fKDAf6xFTnw4O9Qig2VCfW2hJQrmMOuHW0W3dLQmCMO2ccdUd/xyfflH/olTiHZVdGwb8nIwRzSE J15jFlOJuBZBZ4CiyHyd2IFylFlB+HgHhYabhWOGwYO1ZH/Og1dtQlFMk352CGRSIFTapnWQEUtN l4zv8S0aaCFDyGCBqDUxZYpxGHX01y/JuH1xhn7TOCnNCI4eKDs5WGX4R425F4vF1o3BJ4vO0otq I3rimI7jJY1jISqnBxknCIvruF83mF5wN4X7qGLIhR8A2Vg0yFERSIXn9Vv3GHy3Vj/WIkKddlYi yIMv2I/VMjTLpW7pt05SWIZR0RPyxpB4SIUM9lBPGBl0GC7oSEEwRYLe4pJpZY2P0zbI1n+Oc44w qY3PUnmF0ixjVpDD/mJ9wpOBGTVgXlaCaZiPcIWK5NiKBIiPdGaQ0TWGvAiG7nMchdZb7Vgf8zNi MuMyzRdy/lePe9iC4TRx7WhhOQI/QiSVNAmAa2lT/piFbuh7ofJoYSZzrSZ1bvmWw3eN2nKUPVky uPN5/VRfohRd0VYZoqhKIlU6TXYhJxmPUIloAwc1bPmHEpaZYZORHNlXUJM07hATwHR8MJYqkwWR WaIezFhxSFlc8/Fq82hEnpeRozg3ULhhr9lAGtVEkCg5ZNRuuVleBPaZadhG0ZgkyPmDOTOKzViM YgOcpukKqQcbjAWS0IleQ2ROjdh6A+md1qWdBRSX7iSYgFRTtRmBpJioieXJiHfJiMGIR9fJOn8I MSfXYhspn4ooSa2mSAj4n+8Bmg03fBJZoPOJgsVZRxu1oOMRPXYYjdqjihFaEoZpXBREanuJoRI6 cibFinq4ngUKh/wQd/H5ofYCZ0HJXR62opZFaAT0iFIZo4DIiUojkjeqKiuoZirKo5Y1a7AWckGa BkuYoD5lpDK6eUs6CkDqpETwl1EqpfhJpVeKpVl6EgUAADs= --BOUNDARY-- MIME-Version: 1.0 From: Barry Warsaw To: Dingus Lovers Subject: Lyrics Date: Fri, 20 Apr 2001 19:35:02 -0400 Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: text/plain; charset="us-ascii" --BOUNDARY Content-Type: text/html; charset="iso-8859-1" --BOUNDARY Content-Type: text/plain; charset="iso-8859-2" --BOUNDARY Content-Type: text/plain; charset="koi8-r" --BOUNDARY-- MIME-Version: 1.0 From: Barry Warsaw To: Dingus Lovers Subject: Lyrics Date: Fri, 20 Apr 2001 19:35:02 -0400 Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: text/plain; charset="us-ascii" --BOUNDARY Content-Type: text/html; charset="iso-8859-1" --BOUNDARY Content-Type: text/plain --BOUNDARY Content-Type: text/plain; charset="koi8-r" --BOUNDARY-- MIME-Version: 1.0 From: Barry Warsaw To: Dingus Lovers Subject: Lyrics Date: Fri, 20 Apr 2001 19:35:02 -0400 Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit This is a 7bit encoded message. --BOUNDARY Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: Quoted-Printable =A1This is a Quoted Printable encoded message! --BOUNDARY Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: Base64 VGhpcyBpcyBhIEJhc2U2NCBlbmNvZGVkIG1lc3NhZ2Uu --BOUNDARY Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: Base64 VGhpcyBpcyBhIEJhc2U2NCBlbmNvZGVkIG1lc3NhZ2UuCg== --BOUNDARY Content-Type: text/plain; charset="iso-8859-1" This has no Content-Transfer-Encoding: header. --BOUNDARY-- Content-Type: message/rfc822 MIME-Version: 1.0 Subject: The enclosing message Subject: An enclosed message Here is the body of the message. MIME-Version: 1.0 From: Barry Warsaw To: Dingus Lovers Subject: Lyrics Date: Fri, 20 Apr 2001 19:35:02 -0400 Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: text/plain; charset="us-ascii" --BOUNDARY Content-Type: text/html; charset="iso-8859-1" --BOUNDARY Content-Type: multipart/mixed; boundary="ANOTHER" --ANOTHER Content-Type: text/plain; charset="iso-8859-2" --ANOTHER Content-Type: text/plain; charset="iso-8859-3" --ANOTHER-- --BOUNDARY Content-Type: text/plain; charset="us-ascii" --BOUNDARY Content-Type: text/plain; charset="koi8-r" --BOUNDARY-- MIME-Version: 1.0 From: Barry Warsaw To: Dingus Lovers Subject: Lyrics Date: Fri, 20 Apr 2001 19:35:02 -0400 Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: text/plain; charset="us-ascii" --BOUNDARY Content-Type: text/html; charset="iso-8859-1" --BOUNDARY Content-Type: multipart/mixed; boundary="ANOTHER" --ANOTHER Content-Type: text/plain; charset="iso-8859-2" --ANOTHER Content-Type: text/plain; charset="iso-8859-3" --ANOTHER-- --BOUNDARY Content-Type: text/plain; charset="us-ascii" --BOUNDARY Content-Type: text/plain; charset="koi8-r" --BOUNDARY-- MIME-Version: 1.0 From: Barry To: Dingus Lovers Subject: Here is your dingus fish Date: Fri, 20 Apr 2001 19:35:02 -0400 Content-Type: multipart/mixed; boundary="OUTER" --OUTER Content-Type: text/plain; charset="us-ascii" A text/plain part --OUTER Content-Type: multipart/mixed; boundary=BOUNDARY --BOUNDARY Content-Type: text/plain; charset="us-ascii" Hi there, This is the dingus fish. --BOUNDARY Content-Type: image/gif; name="dingusfish.gif" Content-Transfer-Encoding: base64 content-disposition: attachment; filename="dingusfish.gif" R0lGODdhAAEAAfAAAP///wAAACwAAAAAAAEAAQAC/oSPqcvtD6OctNqLs968+w+G4kiW5omm6sq2 7gvH8kzX9o3n+s73/g8MCofEovGITGICTKbyCV0FDNOo9SqpQqpOrJfXzTQj2vD3TGtqL+NtGQ2f qTXmxzuOd7WXdcc9DyjU53ewFni4s0fGhdiYaEhGBelICTNoV1j5NUnFcrmUqemjNifJVWpaOqaI oFq3SspZsSraE7sHq3jr1MZqWvi662vxV4tD+pvKW6aLDOCLyur8PDwbanyDeq0N3DctbQYeLDvR RY6t95m6UB0d3mwIrV7e2VGNvjjffukeJp4w7F65KecGFsTHQGAygOrgrWs1jt28Rc88KESYcGLA /obvTkH6p+CinWJiJmIMqXGQwH/y4qk0SYjgQTczT3ajKZGfuI0uJ4kkVI/DT5s3/ejkxI0aT4Y+ YTYgWbImUaXk9nlLmnSh1qJiJFl0OpUqRK4oOy7NyRQtHWofhoYVxkwWXKUSn0YsS+fUV6lhqfYb 6ayd3Z5qQdG1B7bvQzaJjwUV2lixMUZ7JVsOlfjWVr/3NB/uFvnySBN6Dcb6rGwaRM3wsormw5cC M9NxWy/bWdufudCvy8bOAjXjVVwta/uO21sE5RHBCzNFXtgq9ORtH4eYjVP4Yryo026nvkFmCeyA B29efV6ravCMK5JwWd5897Qrx7ll38o6iHDZ/rXPR//feevhF4l7wjUGX3xq1eeRfM4RSJGBIV1D z1gKPkfWag3mVBVvva1RlX5bAJTPR/2YqNtw/FkIYYEi/pIZiAdpcxpoHtmnYYoZtvhUftzdx5ZX JSKDW405zkGcZzzGZ6KEv4FI224oDmijlEf+xp6MJK5ojY/ASeVUR+wsKRuJ+XFZ5o7ZeEime8t1 ouUsU6YjF5ZtUihhkGfCdFQLWQFJ3UXxmElfhQnR+eCdcDbkFZp6vTRmj56ApCihn5QGpaToNZmR n3NVSpZcQpZ2KEONusaiCsKAug0wkQbJSFO+PTSjneGxOuFjPlUk3ovWvdIerjUg9ZGIOtGq/qeX eCYrrCX+1UPsgTKGGRSbzd5q156d/gpfbJxe66eD5iQKrXj7RGgruGxs62qebBHUKS32CKluCiqZ qh+pmehmEb71noAUoe5e9Zm17S7773V10pjrtG4CmuurCV/n6zLK5turWNhqOvFXbjhZrMD0YhKe wR0zOyuvsh6MWrGoIuzvyWu5y1WIFAqmJselypxXh6dKLNOKEB98L88bS2rkNqqlKzCNJp9c0G0j Gzh0iRrCbHSXmPR643QS+4rWhgFmnSbSuXCjS0xAOWkU2UdLqyuUNfHSFdUouy3bm5i5GnDM3tG8 doJ4r5tqu3pPbRSVfvs8uJzeNXhp3n4j/tZ42SwH7eaWUUOjc3qFV9453UHTXZfcLH+OeNs5g36x lBnHvTm7EbMbLeuaLncao8vWCXimfo1o+843Ak6y4ChNeGntvAYvfLK4ezmoyNIbNCLTCXO9ZV3A E8/s88RczPzDwI4Ob7XZyl7+9Miban29h+tJZPrE21wgvBphDfrrfPdCTPKJD/y98L1rZwHcV6Jq Zab0metpuNIX/qAFPoz171WUaUb4HAhBSzHuHfjzHb3kha/2Cctis/ORArVHNYfFyYRH2pYIRzic isVOfPWD1b6mRTqpCRBozzof6UZVvFXRxWIr3GGrEviGYgyPMfahheiSaLs/9QeFu7oZ/ndSY8DD ya9x+uPed+7mxN2IzIISBOMLFYWVqC3Pew1T2nFuuCiwZS5/v6II10i4t1OJcUH2U9zxKodHsGGv Oa+zkvNUYUOa/TCCRutF9MzDwdlUMJADTCGSbDQ5OV4PTamDoPEi6Ecc/RF5RWwkcdSXvSOaDWSn I9LlvubFTQpuc6JKXLcKeb+xdbKRBnwREemXyjg6ME65aJiOuBgrktzykfPLJBKR9ClMavJ62/Ff BlNIyod9yX9wcSXexnXFpvkrbXk64xsx5Db7wXKP5fSgsvwIMM/9631VLBfkmtbHRXpqmtei52hG pUwSlo+BASQoeILDOBgREECxBBh5/iYmNsQ9dIv5+OI++QkqdsJPc3uykz5fkM+OraeekcQF7X4n B5S67za5U967PmooGQhUXfF7afXyCD7ONdRe17QogYjVx38uLwtrS6nhTnm15LQUnu9E2uK6CNI/ 1HOABj0ESwOjut4FEpFQpdNAm4K2LHnDWHNcmKB2ioKBogysVZtMO2nSxUdZ8Yk2kJc7URioLVI0 YgmtIwZj4LoeKemgnOnbUdGnzZ4Oa6scqiolBGqS6RgWNLu0RMhcaE6rhhU4hiuqFXPAG8fGwTPW FKeLMtdVmXLSs5YJGF/YeVm7rREMlY3UYE+yCxbaMXX8y15m5zVHq6GOKDMynzII/jdUHdyVqIy0 ifX2+r/EgtZcvRzSb72gU9ui87M2VecjKildW/aFqaYhKoryUjfB/g4qtyVuc60xFDGmCxwjW+qu zjuwl2GkOWn66+3QiiEctvd04OVvcCVzjgT7lrkvjVGKKHmmlDUKowSeikb5kK/mJReuWOxONx+s ULsl+Lqb0CVn0SrVyJ6wt4t6yTeSCafhPhAf0OXn6L60UMxiLolFAtmN35S2Ob1lZpQ1r/n0Qb5D oQ1zJiRVDgF8N3Q8TYfbi3DyWCy3lT1nxyBs6FT3S2GOzWRlxwKvlRP0RPJA9SjxEy0UoEnkA+M4 cnzLMJrBGWLFEaaUb5lvpqbq/loOaU5+DFuHPxo82/OZuM8FXG3oVNZhtWpMpb/0Xu5m/LfLhHZQ 7yuVI0MqZ7NE43imC8jH3IwGZlbPm0xkJYs7+2U48hXTsFSMqgGDvai0kLxyynKNT/waj+q1c1tz GjOpPBgdCSq3UKZxCSsqFIY+O6JbAWGWcV1pwqLyj5sGqCF1xb1F3varUWqrJv6cN3PrUXzijtfZ FshpBL3Xwr4GIPvU2N8EjrJgS1zl21rbXQMXeXc5jjFyrhpCzijSv/RQtyPSzHCFMhlME95fHglt pRsX+dfSQjUeHAlpWzJ5iOo79Ldnaxai6bXTcGO3fp07ri7HLEmXXPlYi8bv/qVxvNcdra6m7Rlb 6JBTb5fd66VhFRjGArh2n7R1rDW4P5NOT9K0I183T2scYkeZ3q/VFyLb09U9ajzXBS8Kgkhc4mBS kYY9cy3Vy9lUnuNJH8HGIclUilwnBtjUOH0gteGOZ4c/XNrhXLSYDyxfnD8z1pDy7rYRvDolhnbe UMzxCZUs40s6s7UIvBnLgc0+vKuOkIXeOrDymlp+Zxra4MZLBbVrqD/jTJ597pDmnw5c4+DbyB88 9Cg9DodYcSuMZT/114pptqc/EuTjRPvH/z5slzI3tluOEBBLqOXLOX+0I5929tO97wkvl/atCz+y xJrdwteW2FNW/NSmBP+f/maYtVs/bYyBC7Ox3jsYZHL05CIrBa/nS+b3bHfiYm4Ueil1YZZSgAUI fFZ1dxUmeA2oQRQ3RuGXNGLFV9/XbGFGPV6kfzk1TBBCd+izc7q1H+OHMJwmaBX2IQNYVAKHYepV SSGCe6CnbYHHETKGNe43EDvFgZr0gB/nVHPHZ80VV1ojOiI3XDvYIkl4ayo4bxQIgrFXWTvBI0nH VElWMuw2aLUWCRHHf8ymVCHjFlJnOSojfevCYyyyZDH0IcvHhrsnQ5O1OsWzONuVVKIxSxiFZ/tR fKDAf6xFTnw4O9Qig2VCfW2hJQrmMOuHW0W3dLQmCMO2ccdUd/xyfflH/olTiHZVdGwb8nIwRzSE J15jFlOJuBZBZ4CiyHyd2IFylFlB+HgHhYabhWOGwYO1ZH/Og1dtQlFMk352CGRSIFTapnWQEUtN l4zv8S0aaCFDyGCBqDUxZYpxGHX01y/JuH1xhn7TOCnNCI4eKDs5WGX4R425F4vF1o3BJ4vO0otq I3rimI7jJY1jISqnBxknCIvruF83mF5wN4X7qGLIhR8A2Vg0yFERSIXn9Vv3GHy3Vj/WIkKddlYi yIMv2I/VMjTLpW7pt05SWIZR0RPyxpB4SIUM9lBPGBl0GC7oSEEwRYLe4pJpZY2P0zbI1n+Oc44w qY3PUnmF0ixjVpDD/mJ9wpOBGTVgXlaCaZiPcIWK5NiKBIiPdGaQ0TWGvAiG7nMchdZb7Vgf8zNi MuMyzRdy/lePe9iC4TRx7WhhOQI/QiSVNAmAa2lT/piFbuh7ofJoYSZzrSZ1bvmWw3eN2nKUPVky uPN5/VRfohRd0VYZoqhKIlU6TXYhJxmPUIloAwc1bPmHEpaZYZORHNlXUJM07hATwHR8MJYqkwWR WaIezFhxSFlc8/Fq82hEnpeRozg3ULhhr9lAGtVEkCg5ZNRuuVleBPaZadhG0ZgkyPmDOTOKzViM YgOcpukKqQcbjAWS0IleQ2ROjdh6A+md1qWdBRSX7iSYgFRTtRmBpJioieXJiHfJiMGIR9fJOn8I MSfXYhspn4ooSa2mSAj4n+8Bmg03fBJZoPOJgsVZRxu1oOMRPXYYjdqjihFaEoZpXBREanuJoRI6 cibFinq4ngUKh/wQd/H5ofYCZ0HJXR62opZFaAT0iFIZo4DIiUojkjeqKiuoZirKo5Y1a7AWckGa BkuYoD5lpDK6eUs6CkDqpETwl1EqpfhJpVeKpVl6EgUAADs= --BOUNDARY-- --OUTER-- Return-Path: Delivered-To: bbb@zzz.org Received: by mail.zzz.org (Postfix, from userid 889) id 27CEAD38CC; Fri, 4 May 2001 14:05:44 -0400 (EDT) MIME-Version: 1.0 Content-Type: text; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15090.61304.110929.45684@aaa.zzz.org> From: bbb@ddd.com (John X. Doe) To: bbb@zzz.org Subject: This is a test message Date: Fri, 4 May 2001 14:05:44 -0400 Hi, I'm sorry but I'm using a drainbread ISP, which although big and wealthy can't seem to generate standard compliant email. :( This message has a Content-Type: header with no subtype. I hope you can still read it. -Me Return-Path: Received: from fepD.post.tele.dk (195.41.46.149) by mail.groupcare.dk (LSMTP for Windows NT v1.1b) with SMTP id <0.0014F8A2@mail.groupcare.dk>; Mon, 30 Apr 2001 12:17:50 +0200 User-Agent: Microsoft-Outlook-Express-Macintosh-Edition/5.02.2106 Subject: XX From: xx@xx.dk To: XX Message-ID: Mime-version: 1.0 Content-type: multipart/mixed; boundary="MS_Mac_OE_3071477847_720252_MIME_Part" > Denne meddelelse er i MIME-format. Da dit postl --MS_Mac_OE_3071477847_720252_MIME_Part Content-type: multipart/alternative; boundary="MS_Mac_OE_3071477847_720252_MIME_Part" --MS_Mac_OE_3071477847_720252_MIME_Part Content-type: text/plain; charset="ISO-8859-1" Content-transfer-encoding: quoted-printable Some removed test. --MS_Mac_OE_3071477847_720252_MIME_Part Content-type: text/html; charset="ISO-8859-1" Content-transfer-encoding: quoted-printable Some removed HTML Some removed text. --MS_Mac_OE_3071477847_720252_MIME_Part-- --MS_Mac_OE_3071477847_720252_MIME_Part Content-type: image/gif; name="xx.gif"; x-mac-creator="6F676C65"; x-mac-type="47494666" Content-disposition: attachment Content-transfer-encoding: base64 Some removed base64 encoded chars. --MS_Mac_OE_3071477847_720252_MIME_Part-- Return-Path: <> Delivered-To: scr-admin@socal-raves.org Received: from cougar.noc.ucla.edu (cougar.noc.ucla.edu [169.232.10.18]) by babylon.socal-raves.org (Postfix) with ESMTP id CCC2C51B84 for ; Sun, 23 Sep 2001 20:13:54 -0700 (PDT) Received: from sims-ms-daemon by cougar.noc.ucla.edu (Sun Internet Mail Server sims.3.5.2000.03.23.18.03.p10) id <0GK500B01D0B8Y@cougar.noc.ucla.edu> for scr-admin@socal-raves.org; Sun, 23 Sep 2001 20:14:35 -0700 (PDT) Received: from cougar.noc.ucla.edu (Sun Internet Mail Server sims.3.5.2000.03.23.18.03.p10) id <0GK500B01D0B8X@cougar.noc.ucla.edu>; Sun, 23 Sep 2001 20:14:35 -0700 (PDT) Date: Sun, 23 Sep 2001 20:14:35 -0700 (PDT) From: Internet Mail Delivery Subject: Delivery Notification: Delivery has failed To: scr-admin@socal-raves.org Message-id: <0GK500B04D0B8X@cougar.noc.ucla.edu> MIME-version: 1.0 Sender: scr-owner@socal-raves.org Errors-To: scr-owner@socal-raves.org X-BeenThere: scr@socal-raves.org X-Mailman-Version: 2.1a3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: SoCal-Raves List-Unsubscribe: , List-Archive: Content-Type: multipart/report; boundary="Boundary_(ID_PGS2F2a+z+/jL7hupKgRhA)" --Boundary_(ID_PGS2F2a+z+/jL7hupKgRhA) Content-type: text/plain; charset=ISO-8859-1 This report relates to a message you sent with the following header fields: Message-id: <002001c144a6$8752e060$56104586@oxy.edu> Date: Sun, 23 Sep 2001 20:10:55 -0700 From: "Ian T. Henry" To: SoCal Raves Subject: [scr] yeah for Ians!! Your message cannot be delivered to the following recipients: Recipient address: jangel1@cougar.noc.ucla.edu Reason: recipient reached disk quota --Boundary_(ID_PGS2F2a+z+/jL7hupKgRhA) Content-type: message/DELIVERY-STATUS Original-envelope-id: 0GK500B4HD0888@cougar.noc.ucla.edu Reporting-MTA: dns; cougar.noc.ucla.edu Action: failed Status: 5.0.0 (recipient reached disk quota) Original-recipient: rfc822;jangel1@cougar.noc.ucla.edu Final-recipient: rfc822;jangel1@cougar.noc.ucla.edu --Boundary_(ID_PGS2F2a+z+/jL7hupKgRhA) Content-type: MESSAGE/RFC822 Return-path: scr-admin@socal-raves.org Received: from sims-ms-daemon by cougar.noc.ucla.edu (Sun Internet Mail Server sims.3.5.2000.03.23.18.03.p10) id <0GK500B01D0B8X@cougar.noc.ucla.edu>; Sun, 23 Sep 2001 20:14:35 -0700 (PDT) Received: from panther.noc.ucla.edu by cougar.noc.ucla.edu (Sun Internet Mail Server sims.3.5.2000.03.23.18.03.p10) with ESMTP id <0GK500B4GD0888@cougar.noc.ucla.edu> for jangel1@sims-ms-daemon; Sun, 23 Sep 2001 20:14:33 -0700 (PDT) Received: from babylon.socal-raves.org (ip-209-85-222-117.dreamhost.com [209.85.222.117]) by panther.noc.ucla.edu (8.9.1a/8.9.1) with ESMTP id UAA09793 for ; Sun, 23 Sep 2001 20:14:32 -0700 (PDT) Received: from babylon (localhost [127.0.0.1]) by babylon.socal-raves.org (Postfix) with ESMTP id D3B2951B70; Sun, 23 Sep 2001 20:13:47 -0700 (PDT) Received: by babylon.socal-raves.org (Postfix, from userid 60001) id A611F51B82; Sun, 23 Sep 2001 20:13:46 -0700 (PDT) Received: from tiger.cc.oxy.edu (tiger.cc.oxy.edu [134.69.3.112]) by babylon.socal-raves.org (Postfix) with ESMTP id ADA7351B70 for ; Sun, 23 Sep 2001 20:13:44 -0700 (PDT) Received: from ent (n16h86.dhcp.oxy.edu [134.69.16.86]) by tiger.cc.oxy.edu (8.8.8/8.8.8) with SMTP id UAA08100 for ; Sun, 23 Sep 2001 20:14:24 -0700 (PDT) Date: Sun, 23 Sep 2001 20:10:55 -0700 From: "Ian T. Henry" Subject: [scr] yeah for Ians!! Sender: scr-admin@socal-raves.org To: SoCal Raves Errors-to: scr-admin@socal-raves.org Message-id: <002001c144a6$8752e060$56104586@oxy.edu> MIME-version: 1.0 X-Mailer: Microsoft Outlook Express 5.50.4522.1200 Content-type: text/plain; charset=us-ascii Precedence: bulk Delivered-to: scr-post@babylon.socal-raves.org Delivered-to: scr@socal-raves.org X-Converted-To-Plain-Text: from multipart/alternative by demime 0.98e X-Converted-To-Plain-Text: Alternative section used was text/plain X-BeenThere: scr@socal-raves.org X-Mailman-Version: 2.1a3 List-Help: List-Post: List-Subscribe: , List-Id: SoCal-Raves List-Unsubscribe: , List-Archive: I always love to find more Ian's that are over 3 years old!! Ian _______________________________________________ For event info, list questions, or to unsubscribe, see http://www.socal-raves.org/ --Boundary_(ID_PGS2F2a+z+/jL7hupKgRhA)-- MIME-Version: 1.0 From: Barry To: Dingus Lovers Subject: Here is your dingus fish Date: Fri, 20 Apr 2001 19:35:02 -0400 Content-Type: multipart/mixed; boundary="BOUNDARY" Hi there, This is the dingus fish. [Non-text (image/gif) part of message omitted, filename dingusfish.gif] Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Foobar-Spoink-Defrobnit: wasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey" Send Ppp mailing list submissions to ppp@zzz.org To subscribe or unsubscribe via the World Wide Web, visit http://www.zzz.org/mailman/listinfo/ppp or, via email, send a message with subject or body 'help' to ppp-request@zzz.org You can reach the person managing the list at ppp-admin@zzz.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Ppp digest..." Today's Topics: 1. testing #1 (Barry A. Warsaw) 2. testing #2 (Barry A. Warsaw) 3. testing #3 (Barry A. Warsaw) 4. testing #4 (Barry A. Warsaw) 5. testing #5 (Barry A. Warsaw) hello hello hello hello hello _______________________________________________ Ppp mailing list Ppp@zzz.org http://www.zzz.org/mailman/listinfo/ppp Return-Path: Delivered-To: bbb@zzz.org Received: by mail.zzz.org (Postfix, from userid 889) id 27CEAD38CC; Fri, 4 May 2001 14:05:44 -0400 (EDT) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15090.61304.110929.45684@aaa.zzz.org> From: bbb@ddd.com (John X. Doe) To: bbb@zzz.org Cc: ccc@zzz.org CC: ddd@zzz.org cc: eee@zzz.org Subject: This is a test message Date: Fri, 4 May 2001 14:05:44 -0400 Hi, Do you like this message? -Me From: aperson@dom.ain To: bperson@dom.ain Subject: Test Content-Type: multipart/mixed; boundary="BOUNDARY" MIME message --BOUNDARY Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit One --BOUNDARY Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Two --BOUNDARY-- End of MIME message Mime-Version: 1.0 Message-Id: Date: Tue, 16 Oct 2001 13:59:25 +0300 To: a@example.com From: b@example.com Content-Type: multipart/mixed; boundary="============_-1208892523==_============" --============_-1208892523==_============ Content-Type: text/plain; charset="us-ascii" ; format="flowed" Text text text. --============_-1208892523==_============ Content-Id: Content-Type: image/jpeg; name="wibble.JPG" ; x-mac-type="4A504547" ; x-mac-creator="474B4F4E" Content-Disposition: attachment; filename="wibble.JPG" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAALCAXABIEBAREA g6bCjjw/pIZSjO6FWFpldjySOmCNrO7DBZibUXhTwtCixw+GtAijVdqxxaPp0aKvmGXa qrbBQvms0mAMeYS/3iTV1dG0hHaRNK01XblnWxtVdjkHLMIgTyqnk9VB7CrP2KzIINpa 4O7I+zxYO9WV8jZg71Zlb+8rMDkEirAVQFAUAKAFAAAUAYAUDgADgY6DjpRtXj5RxjHA 4wQRj0wQCMdCAewpaKKK/9k= --============_-1208892523==_============ Content-Id: Content-Type: image/jpeg; name="wibble2.JPG" ; x-mac-type="4A504547" ; x-mac-creator="474B4F4E" Content-Disposition: attachment; filename="wibble2.JPG" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAALCAXABJ0BAREA /8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA W6NFJJBEkU10kKGTcWMDwxuU+0JHvk8qAtOpNwqSR0n8c3BlDyXHlqsUltHEiTvdXLxR 7vMiGDNJAJWkAMk8ZkCFp5G2oo5W++INrbQtNfTQxJAuXlupz9oS4d5Y1W+E2XlWZJJE Y7LWYQxTLE1zuMbfBPxw8X2fibVdIbSbI6nLZxX635t9TjtYreWR7WGKJTLJFFKSlozO 0ShxIXM43uC3/9k= --============_-1208892523==_============ Content-Type: text/plain; charset="us-ascii" ; format="flowed" Text text text. --============_-1208892523==_============-- From: aperson@dom.ain Content-Type: multipart/mixed; boundary="BOUNDARY" --BOUNDARY Content-Type: text/plain A message part --BOUNDARY-- Content-Type: multipart/mixed; boundary="BOUNDARY" MIME-Version: 1.0 Subject: A subject To: aperson@dom.ain From: bperson@dom.ain --BOUNDARY --BOUNDARY-- From MAILER-DAEMON Fri Apr 06 16:46:09 2001 Received: from [204.245.199.98] (helo=zinfandel.lacita.com) by www.linux.org.uk with esmtp (Exim 3.13 #1) id 14lYR6-0008Iv-00 for linuxuser-admin@www.linux.org.uk; Fri, 06 Apr 2001 16:46:09 +0100 Received: from localhost (localhost) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with internal id JAB03225; Fri, 6 Apr 2001 09:23:06 -0800 (GMT-0800) Date: Fri, 6 Apr 2001 09:23:06 -0800 (GMT-0800) From: Mail Delivery Subsystem Subject: Returned mail: Too many hops 19 (17 max): from via [199.164.235.226], to Message-Id: <200104061723.JAB03225@zinfandel.lacita.com> To: To: postmaster@zinfandel.lacita.com MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; bo Auto-Submitted: auto-generated (failure) This is a MIME-encapsulated message --JAB03225.986577786/zinfandel.lacita.com The original message was received at Fri, 6 Apr 2001 09:23:03 -0800 (GMT-0800) from [199.164.235.226] ----- The following addresses have delivery notifications ----- (unrecoverable error) ----- Transcript of session follows ----- 554 Too many hops 19 (17 max): from via [199.164.235.226], to --JAB03225.986577786/zinfandel.lacita.com Content-Type: message/delivery-status Reporting-MTA: dns; zinfandel.lacita.com Received-From-MTA: dns; [199.164.235.226] Arrival-Date: Fri, 6 Apr 2001 09:23:03 -0800 (GMT-0800) Final-Recipient: rfc822; scoffman@wellpartner.com Action: failed Status: 5.4.6 Last-Attempt-Date: Fri, 6 Apr 2001 09:23:06 -0800 (GMT-0800) --JAB03225.986577786/zinfandel.lacita.com Content-Type: text/rfc822-headers Return-Path: linuxuser-admin@www.linux.org.uk Received: from ns1.wellpartner.net ([199.164.235.226]) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with ESMTP id JAA03225 for ; Fri, 6 Apr 2001 09:23:03 -0800 (GMT-0800) Received: from zinfandel.lacita.com ([204.245.199.98]) by fo Received: from ns1.wellpartner.net ([199.164.235.226]) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with ESMTP id JAA03221 for ; Fri, 6 Apr 2001 09:22:18 -0800 (GMT-0800) Received: from zinfandel.lacita.com ([204.245.199.98]) by fo Received: from ns1.wellpartner.net ([199.164.235.226]) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with ESMTP id JAA03217 for ; Fri, 6 Apr 2001 09:21:37 -0800 (GMT-0800) Received: from zinfandel.lacita.com ([204.245.199.98]) by fo Received: from ns1.wellpartner.net ([199.164.235.226]) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with ESMTP id JAA03213 for ; Fri, 6 Apr 2001 09:20:56 -0800 (GMT-0800) Received: from zinfandel.lacita.com ([204.245.199.98]) by fo Received: from ns1.wellpartner.net ([199.164.235.226]) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with ESMTP id JAA03209 for ; Fri, 6 Apr 2001 09:20:15 -0800 (GMT-0800) Received: from zinfandel.lacita.com ([204.245.199.98]) by fo Received: from ns1.wellpartner.net ([199.164.235.226]) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with ESMTP id JAA03205 for ; Fri, 6 Apr 2001 09:19:33 -0800 (GMT-0800) Received: from zinfandel.lacita.com ([204.245.199.98]) by fo Received: from ns1.wellpartner.net ([199.164.235.226]) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with ESMTP id JAA03201 for ; Fri, 6 Apr 2001 09:18:52 -0800 (GMT-0800) Received: from zinfandel.lacita.com ([204.245.199.98]) by fo Received: from ns1.wellpartner.net ([199.164.235.226]) by zinfandel.lacita.com (8.7.3/8.6.10-MT4.00) with ESMTP id JAA03197 for ; Fri, 6 Apr 2001 09:17:54 -0800 (GMT-0800) Received: from www.linux.org.uk (parcelfarce.linux.theplanet.co.uk [195.92.249.252]) by fo Received: from localhost.localdomain ([ by id Received: from [212.1.130.11] (helo=s1.uklinux.net ident=root) by id fo Received: from server (ppp-2-22.cvx4.telinco.net [212.1.149.22]) by fo From: Daniel James Organization: LinuxUser To: linuxuser@www.linux.org.uk X-Mailer: KMail [version 1.1.99] Content-Type: text/plain; c MIME-Version: 1.0 Message-Id: <01040616033903.00962@server> Content-Transfer-Encoding: 8bit Subject: [LinuxUser] bulletin no. 45 Sender: linuxuser-admin@www.linux.org.uk Errors-To: linuxuser-admin@www.linux.org.uk X-BeenThere: linuxuser@www.linux.org.uk X-Mailman-Version: 2.0.3 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , Date: Fri, 6 Apr 2001 16:03:39 +0100 --JAB03225.986577786/zinfandel.lacita.com-- Received: from xcar [192.168.0.2] by jeeves.wooster.local (SMTPD32-7.07 EVAL) id AFF92F0214; Sun, 12 May 2002 08:55:37 +0100 Date: Sun, 12 May 2002 08:56:15 +0100 From: Father Time To: timbo@jeeves.wooster.local Subject: IMAP file test Message-ID: <6df65d354b.father.time@rpc.wooster.local> X-Organization: Home User-Agent: Messenger-Pro/2.50a (MsgServe/1.50) (RISC-OS/4.02) POPstar/2.03 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="1618492860--2051301190--113853680" Status: R X-UIDL: 319998302 This message is in MIME format which your mailer apparently does not support. You either require a newer version of your software which supports MIME, or a separate MIME decoding utility. Alternatively, ask the sender of this message to resend it in a different format. --1618492860--2051301190--113853680 Content-Type: text/plain; charset=us-ascii Simple email with attachment. --1618492860--2051301190--113853680 Content-Type: application/riscos; name="clock.bmp,69c"; type=BMP; load=&fff69c4b; exec=&355dd4d1; access=&03 Content-Disposition: attachment; filename="clock.bmp" Content-Transfer-Encoding: base64 Qk12AgAAAAAAAHYAAAAoAAAAIAAAACAAAAABAAQAAAAAAAAAAADXDQAA1w0AAAAAAAAA AAAAAAAAAAAAiAAAiAAAAIiIAIgAAACIAIgAiIgAALu7uwCIiIgAERHdACLuIgAz//8A zAAAAN0R3QDu7iIA////AAAAAAAAAAAAAAAAAAAAAAAAAAi3AAAAAAAAADeAAAAAAAAA C3ADMzMzMANwAAAAAAAAAAAHMAAAAANwAAAAAAAAAACAMAd3zPfwAwgAAAAAAAAIAwd/ f8x/f3AwgAAAAAAAgDB0x/f3//zPAwgAAAAAAAcHfM9////8z/AwAAAAAAiwd/f3//// ////A4AAAAAAcEx/f///////zAMAAAAAiwfM9////3///8zwOAAAAAcHf3////B///// 8DAAAAALB/f3///wd3d3//AwAAAABwTPf//wCQAAD/zAMAAAAAsEx/f///B////8wDAA AAAHB39////wf/////AwAAAACwf39///8H/////wMAAAAIcHfM9///B////M8DgAAAAA sHTH///wf///xAMAAAAACHB3f3//8H////cDgAAAAAALB3zH//D//M9wMAAAAAAAgLB0 z39///xHAwgAAAAAAAgLB3d3RHd3cDCAAAAAAAAAgLAHd0R3cAMIAAAAAAAAgAgLcAAA AAMwgAgAAAAACDAAAAu7t7cwAAgDgAAAAABzcIAAAAAAAAgDMwAAAAAAN7uwgAAAAAgH MzMAAAAACH97tzAAAAALu3c3gAAAAAAL+7tzDABAu7f7cAAAAAAACA+3MA7EQAv/sIAA AAAAAAAIAAAAAAAAAIAAAAAA --1618492860--2051301190--113853680-- Return-Path: Received: by mail.dom.ain (Postfix, from userid 889) id B9D0AD35DB; Tue, 4 Jun 2002 21:46:59 -0400 (EDT) Message-ID: <15613.28051.707126.569693@dom.ain> Date: Tue, 4 Jun 2002 21:46:59 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: bug demonstration 12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789 more text From: aperson@dom.ain (Anne P. Erson) To: bperson@dom.ain (Barney P. Erson) test From: aperson@dom.ain MIME-Version: 1.0 Content-Type: multipart/digest; boundary=BOUNDARY --BOUNDARY Content-Type: message/rfc822 Content-Type: text/plain; charset=us-ascii To: aa@bb.org From: cc@dd.org Subject: ee message 1 --BOUNDARY Content-Type: message/rfc822 Content-Type: text/plain; charset=us-ascii To: aa@bb.org From: cc@dd.org Subject: ee message 2 --BOUNDARY-- Return-Path: Delivered-To: bbb@zzz.org Received: by mail.zzz.org (Postfix, from userid 889) id 27CEAD38CC; Fri, 4 May 2001 14:05:44 -0400 (EDT) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; title*0*="us-ascii'en'This%20is%20even%20more%20"; title*1*="%2A%2A%2Afun%2A%2A%2A%20"; title*2="isn't it!" Content-Transfer-Encoding: 7bit Message-ID: <15090.61304.110929.45684@aaa.zzz.org> From: bbb@ddd.com (John X. Doe) To: bbb@zzz.org Subject: This is a test message Date: Fri, 4 May 2001 14:05:44 -0400 Hi, Do you like this message? -Me From: aperson@dom.ain MIME-Version: 1.0 Content-Type: multipart/digest; boundary=BOUNDARY --BOUNDARY Content-Type: text/plain; charset=us-ascii To: aa@bb.org From: cc@dd.org Subject: ee message 1 --BOUNDARY Content-Type: text/plain; charset=us-ascii To: aa@bb.org From: cc@dd.org Subject: ee message 2 --BOUNDARY-- From: aperson@dom.ain MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=BOUNDARY_ --BOUNDARY Content-Type: text/plain message 1 --BOUNDARY Content-Type: text/plain message 2 --BOUNDARY-- Delivered-To: freebsd-isp@freebsd.org Date: Tue, 26 Sep 2000 12:23:03 -0500 From: Anne Person To: Barney Dude Subject: Re: Limiting Perl CPU Utilization... Mime-Version: 1.0 Content-Type: text/plain; charset*=ansi-x3.4-1968''us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.8i Sender: owner-freebsd-isp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Some message. Delivered-To: freebsd-isp@freebsd.org Date: Wed, 27 Sep 2000 11:11:09 -0500 From: Anne Person To: Barney Dude Subject: Re: Limiting Perl CPU Utilization... Mime-Version: 1.0 Content-Type: multipart/signed; micalg*=ansi-x3.4-1968''pgp-md5; protocol*=ansi-x3.4-1968''application%2Fpgp-signature; boundary*="ansi-x3.4-1968''EeQfGwPcQSOJBaQU" Content-Disposition: inline Sender: owner-freebsd-isp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org --EeQfGwPcQSOJBaQU Content-Type: text/plain; charset*=ansi-x3.4-1968''us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable part 1 --EeQfGwPcQSOJBaQU Content-Type: text/plain Content-Disposition: inline part 2 --EeQfGwPcQSOJBaQU-- From: aperson@dom.ain To: bperson@dom.ain Content-Type: multipart/digest; boundary=XYZ --XYZ Content-Type: text/plain This is a text plain part that is counter to recommended practice in RFC 2046, $5.1.5, but is not illegal --XYZ From: cperson@dom.ain To: dperson@dom.ain A submessage --XYZ-- From: aperson@dom.ain To: bperson@dom.ain Subject: here's something interesting counter to RFC 2822, there's no separating newline here Mime-Version: 1.0 Content-Type: Multipart/Mixed; Boundary="NextPart" To: IETF-Announce:; From: Internet-Drafts@ietf.org Subject: I-D ACTION:draft-ietf-mboned-mix-00.txt Date: Tue, 22 Dec 1998 16:55:06 -0500 --NextPart Blah blah blah --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <19981222151406.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-mboned-mix-00.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-mboned-mix-00.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <19981222151406.I-D@ietf.org> --OtherAccess-- --NextPart-- Content-Type: multipart/mixed; boundary=ABCDE --ABCDE Content-Type: text/x-one Blah --ABCDE --ABCDE Content-Type: text/x-two Blah --ABCDE --ABCDE --ABCDE --ABCDE Content-Type: text/x-two Blah --ABCDE-- MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" ------- =_aaaaaaaaaa0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa1" Content-ID: <20592.1022586929.1@example.com> ------- =_aaaaaaaaaa1 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa2" Content-ID: <20592.1022586929.2@example.com> ------- =_aaaaaaaaaa2 Content-Type: text/plain Content-ID: <20592.1022586929.3@example.com> Content-Description: very tricky Content-Transfer-Encoding: 7bit Unlike the test test_nested-multiples-with-internal-boundary, this piece of text not only contains the outer boundary tags ------- =_aaaaaaaaaa1 and ------- =_aaaaaaaaaa0 but puts them at the start of a line! And, to be even nastier, it even includes a couple of end tags, such as this one: ------- =_aaaaaaaaaa1-- and this one, which is from a multipart we haven't even seen yet! ------- =_aaaaaaaaaa4-- This will, I'm sure, cause much breakage of MIME parsers. But, as far as I can tell, it's perfectly legal. I have not yet ever seen a case of this in the wild, but I've seen *similar* things. ------- =_aaaaaaaaaa2 Content-Type: application/octet-stream Content-ID: <20592.1022586929.4@example.com> Content-Description: patch2 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa2-- ------- =_aaaaaaaaaa1 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa3" Content-ID: <20592.1022586929.6@example.com> ------- =_aaaaaaaaaa3 Content-Type: application/octet-stream Content-ID: <20592.1022586929.7@example.com> Content-Description: patch3 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa3 Content-Type: application/octet-stream Content-ID: <20592.1022586929.8@example.com> Content-Description: patch4 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa3-- ------- =_aaaaaaaaaa1 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa4" Content-ID: <20592.1022586929.10@example.com> ------- =_aaaaaaaaaa4 Content-Type: application/octet-stream Content-ID: <20592.1022586929.11@example.com> Content-Description: patch5 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa4 Content-Type: application/octet-stream Content-ID: <20592.1022586929.12@example.com> Content-Description: patch6 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa4-- ------- =_aaaaaaaaaa1-- ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <20592.1022586929.15@example.com> -- It's never too late to have a happy childhood. ------- =_aaaaaaaaaa0-- MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0" ------- =_aaaaaaaaaa0 Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa1" Content-ID: <20592.1022586929.1@example.com> ------- =_aaaaaaaaaa1 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa1" Content-ID: <20592.1022586929.2@example.com> ------- =_aaaaaaaaaa1 Content-Type: application/octet-stream Content-ID: <20592.1022586929.3@example.com> Content-Description: patch1 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa1 Content-Type: application/octet-stream Content-ID: <20592.1022586929.4@example.com> Content-Description: patch2 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa1-- ------- =_aaaaaaaaaa1 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa1" Content-ID: <20592.1022586929.6@example.com> ------- =_aaaaaaaaaa1 Content-Type: application/octet-stream Content-ID: <20592.1022586929.7@example.com> Content-Description: patch3 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa1 Content-Type: application/octet-stream Content-ID: <20592.1022586929.8@example.com> Content-Description: patch4 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa1-- ------- =_aaaaaaaaaa1 Content-Type: multipart/alternative; boundary="----- =_aaaaaaaaaa1" Content-ID: <20592.1022586929.10@example.com> ------- =_aaaaaaaaaa1 Content-Type: application/octet-stream Content-ID: <20592.1022586929.11@example.com> Content-Description: patch5 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa1 Content-Type: application/octet-stream Content-ID: <20592.1022586929.12@example.com> Content-Description: patch6 Content-Transfer-Encoding: base64 XXX ------- =_aaaaaaaaaa1-- ------- =_aaaaaaaaaa1-- ------- =_aaaaaaaaaa0 Content-Type: text/plain; charset="us-ascii" Content-ID: <20592.1022586929.15@example.com> -- It's never too late to have a happy childhood. ------- =_aaaaaaaaaa0-- MIME-Version: 1.0 Content-Type: text/html; boundary="--961284236552522269" ----961284236552522269 Content-Type: text/html; Content-Transfer-Encoding: 7Bit ----961284236552522269-- From: "Allison Dunlap" To: yyy@example.com Subject: 64423 Date: Sun, 11 Jul 2004 16:09:27 -0300 MIME-Version: 1.0 Content-Type: multipart/alternative; Blah blah blah Content-Type: multipart/mixed; boundary="AAA" From: Mail Delivery Subsystem To: yyy@example.com This is a MIME-encapsulated message --AAA Stuff --AAA Content-Type: message/rfc822 From: webmaster@python.org To: zzz@example.com Content-Type: multipart/mixed; boundary="BBB" --BBB-- --AAA-- From SRS0=aO/p=ON=bag.python.org=None@bounce2.pobox.com Fri Nov 26 21:40:36 2004 X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] [nil nil nil nil nil nil nil "MAILER DAEMON <>" "MAILER DAEMON <>" nil nil "Banned file: auto__mail.python.bat in mail from you" "^From:" nil nil nil nil "Banned file: auto__mail.python.bat in mail from you" nil nil nil nil nil nil nil] nil) MIME-Version: 1.0 Message-Id: Content-Type: multipart/report; report-type=delivery-status; charset=utf-8; boundary="----------=_1101526904-1956-5" X-Virus-Scanned: by XS4ALL Virus Scanner X-UIDL: 4\G!!! To: Subject: Banned file: auto__mail.python.bat in mail from you Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) This is a multi-part message in MIME format... ------------=_1101526904-1956-5 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 7bit BANNED FILENAME ALERT Your message to: xxxxxxx@dot.ca.gov, xxxxxxxxxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxx@dot.ca.gov, xxxxxx@dot.ca.gov, xxxxxxxxxxxxxxxx@dot.ca.gov, xxxxxxxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxxxxxxxx@dot.ca.gov, xxxxxxxxxxxx@dot.ca.gov, xxxxxxx@dot.ca.gov, xxxxxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxx@dot.ca.gov, xxx@dot.ca.gov, xxxxxxx@dot.ca.gov, xxxxxxx@dot.ca.gov, xxxxxxxxxxxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxxx@dot.ca.gov, xxx@dot.ca.gov, xxxxxxxx@dot.ca.gov, xxxxxxxxxxxxx@dot.ca.gov, xxxxxxxxxxxxx@dot.ca.gov, xxxxxxxxxxx@dot.ca.gov, xxxxxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxxxxxxxx@dot.ca.gov, xxxxxxx@dot.ca.gov, xxxxxxxxxxxxxxx@dot.ca.gov, xxxxxxxxxxxxx@dot.ca.gov, xxxx@dot.ca.gov, xxxxxxxx@dot.ca.gov, xxxxxxxxxx@dot.ca.gov, xxxxxxxxxxxxxxxxxx@dot.ca.gov was blocked by our Spam Firewall. The email you sent with the following subject has NOT BEEN DELIVERED: Subject: Delivery_failure_notice An attachment in that mail was of a file type that the Spam Firewall is set to block. ------------=_1101526904-1956-5 Content-Type: message/delivery-status Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-Description: Delivery error report Reporting-MTA: dns; sacspam01.dot.ca.gov Received-From-MTA: smtp; sacspam01.dot.ca.gov ([127.0.0.1]) Arrival-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) Final-Recipient: rfc822; xxxxxxx@dot.ca.gov Action: failed Status: 5.7.1 Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST) ------------=_1101526904-1956-5 Content-Type: text/rfc822-headers Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-Description: Undelivered-message headers Received: from kgsav.org (ppp-70-242-162-63.dsl.spfdmo.swbell.net [70.242.162.63]) by sacspam01.dot.ca.gov (Spam Firewall) with SMTP id A232AD03DE3A; Fri, 26 Nov 2004 19:41:35 -0800 (PST) From: webmaster@python.org To: xxxxx@dot.ca.gov Date: Sat, 27 Nov 2004 03:35:30 UTC Subject: Delivery_failure_notice Importance: Normal X-Priority: 3 (Normal) X-MSMail-Priority: Normal Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="====67bd2b7a5.f99f7" Content-Transfer-Encoding: 7bit ------------=_1101526904-1956-5-- Return-Path: Delivered-To: barry@python.org Received: by mail.python.org (Postfix, from userid 889) id C2BF0D37C6; Tue, 11 Sep 2001 00:05:05 -0400 (EDT) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="h90VIIIKmx" Content-Transfer-Encoding: 7bit Message-ID: <15261.36209.358846.118674@anthem.python.org> From: barry@python.org (Barry A. Warsaw) To: barry@python.org Subject: a simple multipart Date: Tue, 11 Sep 2001 00:05:05 -0400 X-Mailer: VM 6.95 under 21.4 (patch 4) "Artificial Intelligence" XEmacs Lucid X-Attribution: BAW X-Oblique-Strategy: Make a door into a window --h90VIIIKmx Content-Type: text/plain; name="msg.txt" Content-Transfer-Encoding: 7bit a simple kind of mirror to reflect upon our own --h90VIIIKmx Content-Type: text/plain; name="msg.txt" Content-Transfer-Encoding: 7bit a simple kind of mirror to reflect upon our own --h90VIIIKmx-- From: To: Subject: test X-Long-Line: Some really long line contains a lot of text and thus has to be rewrapped because it is some really long line MIME-Version: 1.0 Content-Type: multipart/signed; boundary="borderline"; protocol="application/pgp-signature"; micalg=pgp-sha1 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --borderline Content-Type: text/plain X-Long-Line: Another really long line contains a lot of text and thus has to be rewrapped because it is another really long line This is the signed contents. --borderline Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.6 (GNU/Linux) iD8DBQFG03voRhp6o4m9dFsRApSZAKCCAN3IkJlVRg6NvAiMHlvvIuMGPQCeLZtj FGwfnRHFBFO/S4/DKysm0lI= =t7+s -----END PGP SIGNATURE----- --borderline-- Return-Path: Delivery-Date: Mon, 08 Feb 2010 14:05:16 +0100 Received: from example.org (example.org [64.5.53.58]) by example.net (node=mxbap2) with ESMTP (Nemesis) id UNIQUE for someone@example.com; Mon, 08 Feb 2010 14:05:16 +0100 Date: Mon, 01 Feb 2010 12:21:16 +0100 From: "Sender" To: Subject: GroupwiseForwardingTest Mime-Version: 1.0 Content-Type: message/rfc822 Return-path: Message-ID: <4B66B890.4070408@teconcept.de> Date: Mon, 01 Feb 2010 12:18:40 +0100 From: "Dr. Sender" MIME-Version: 1.0 To: "Recipient" Subject: GroupwiseForwardingTest Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Testing email forwarding with Groupwise 1.2.2010 # -*- coding: latin1 -*- # IMPORTANT: this file has the utf-8 BOM signature '\xef\xbb\xbf' # at the start of it. Make sure this is preserved if any changes # are made! Also note that the coding cookie above conflicts with # the presense of a utf-8 BOM signature -- this is intended. # Arbitrary encoded utf-8 text (stolen from test_doctest2.py). x = 'ЉЊЈЁЂ' def y(): """ And again in a comment. ЉЊЈЁЂ """ pass # IMPORTANT: this file has the utf-8 BOM signature '\xef\xbb\xbf' # at the start of it. Make sure this is preserved if any changes # are made! # Arbitrary encoded utf-8 text (stolen from test_doctest2.py). x = 'ЉЊЈЁЂ' def y(): """ And again in a comment. ЉЊЈЁЂ """ pass # -*- coding: utf-8 -*- # IMPORTANT: unlike the other test_tokenize-*.txt files, this file # does NOT have the utf-8 BOM signature '\xef\xbb\xbf' at the start # of it. Make sure this is not added inadvertently by your editor # if any changes are made to this file! # Arbitrary encoded utf-8 text (stolen from test_doctest2.py). x = 'ЉЊЈЁЂ' def y(): """ And again in a comment. ЉЊЈЁЂ """ pass # -*- coding: utf-8 -*- # IMPORTANT: this file has the utf-8 BOM signature '\xef\xbb\xbf' # at the start of it. Make sure this is preserved if any changes # are made! # Arbitrary encoded utf-8 text (stolen from test_doctest2.py). x = 'ЉЊЈЁЂ' def y(): """ And again in a comment. ЉЊЈЁЂ """ pass # Tests for the 'tokenize' module. # Large bits stolen from test_grammar.py. # Comments "#" #' #" #\ # # abc '''# #''' x = 1 # # Balancing continuation a = (3, 4, 5, 6) y = [3, 4, 5] z = {'a':5, 'b':6} x = (len(repr(y)) + 5*x - a[ 3 ] - x + len({ } ) ) # Backslash means line continuation: x = 1 \ + 1 # Backslash does not means continuation in comments :\ x = 0 # Ordinary integers 0xff != 255 0o377 != 255 2147483647 != 0o17777777777 -2147483647-1 != 0o20000000000 0o37777777777 != -1 0xffffffff != -1; 0o37777777777 != -1; -0o1234567 == 0O001234567; 0b10101 == 0B00010101 # Long integers x = 0 x = 0 x = 0xffffffffffffffff x = 0xffffffffffffffff x = 0o77777777777777777 x = 0B11101010111111111 x = 123456789012345678901234567890 x = 123456789012345678901234567890 # Floating-point numbers x = 3.14 x = 314. x = 0.314 # XXX x = 000.314 x = .314 x = 3e14 x = 3E14 x = 3e-14 x = 3e+14 x = 3.e14 x = .3e14 x = 3.1e4 # String literals x = ''; y = ""; x = '\''; y = "'"; x = '"'; y = "\""; x = "doesn't \"shrink\" does it" y = 'doesn\'t "shrink" does it' x = "does \"shrink\" doesn't it" y = 'does "shrink" doesn\'t it' x = """ The "quick" brown fox jumps over the 'lazy' dog. """ y = '\nThe "quick"\nbrown fox\njumps over\nthe \'lazy\' dog.\n' y = ''' The "quick" brown fox jumps over the 'lazy' dog. '''; y = "\n\ The \"quick\"\n\ brown fox\n\ jumps over\n\ the 'lazy' dog.\n\ "; y = '\n\ The \"quick\"\n\ brown fox\n\ jumps over\n\ the \'lazy\' dog.\n\ '; x = r'\\' + R'\\' x = r'\'' + '' y = r''' foo bar \\ baz''' + R''' foo''' y = r"""foo bar \\ baz """ + R'''spam ''' x = b'abc' + B'ABC' y = b"abc" + B"ABC" x = br'abc' + Br'ABC' + bR'ABC' + BR'ABC' y = br"abc" + Br"ABC" + bR"ABC" + BR"ABC" x = rb'abc' + rB'ABC' + Rb'ABC' + RB'ABC' y = rb"abc" + rB"ABC" + Rb"ABC" + RB"ABC" x = br'\\' + BR'\\' x = rb'\\' + RB'\\' x = br'\'' + '' x = rb'\'' + '' y = br''' foo bar \\ baz''' + BR''' foo''' y = Br"""foo bar \\ baz """ + bR'''spam ''' y = rB"""foo bar \\ baz """ + Rb'''spam ''' # Indentation if 1: x = 2 if 1: x = 2 if 1: while 0: if 0: x = 2 x = 2 if 0: if 2: while 0: if 1: x = 2 # Operators def d22(a, b, c=1, d=2): pass def d01v(a=1, *restt, **restd): pass (x, y) != ({'a':1}, {'b':2}) # comparison if 1 < 1 > 1 == 1 >= 1 <= 1 != 1 != 1 in 1 not in 1 is 1 is not 1: pass # binary x = 1 & 1 x = 1 ^ 1 x = 1 | 1 # shift x = 1 << 1 >> 1 # additive x = 1 - 1 + 1 - 1 + 1 # multiplicative x = 1 / 1 * 1 % 1 # unary x = ~1 ^ 1 & 1 | 1 & 1 ^ -1 x = -1*1/1 + 1*1 - ---1*1 # selector import sys, time x = sys.modules['time'].time() @staticmethod def foo(): pass @staticmethod def foo(x:1)->1: pass