Developer's Ideas Library
- Package: devil
- Version: 0.0.7
- Generated: 2025-08-05T09:11:25
- Author(s): Any Developers
- Maintainer(s): [Yutaka Morioka],[Hiroki Yamanobe],[Ryo Nakaya]
- License: MIT
- File SHA256:
F*2B05572EDB5298BD1FF06CAA9B96FF1FD9143A7404FEB68CAAECB8BF07CAC21Bfor this version - Content SHA256:
C*DA6358120C9BB14B45825D89658A0FE9C64C714D0B9335389DAC10A1AE3E918Ffor this version
The package is a library of any ideas at any stages from anyone. PharmaForest will maintain the package obtaining ideas from developers. Contact PharmaForest members if you are interested. Purposes of adding devils(components of the package) can be like joking(for fun), trial, showing-off, or recruiting members for further development by showing POC for someone who don't have github account or not faimliar yet with SAS packages framework but is interested in sharing.
Required SAS Components:
- Base SAS Software
Required SAS Packages:
- misc
SAS package generated by SAS Package Framework, version 20250728
The devil package consists of the following content:
text2morse is a function that converts text to Morse code. options cmplib=work.f ; is required prior to f1 is used.
This is macro to chat with LLMs(openAI / Google) in SAS DMS(Display Management System) for who cannot afford Viya Copilot. This is actually like Rshiny application which creates window for prompt and you can receive responses from LLMs in log window.
Parameters:
- provider: openAI / google / anthropic
- model : please specify(e.g. gemini-1.5-flash, gpt-3.5-turbo)
- apikey : please input
- max_tokens : 1024 (default)
This macro is to celebrate something with fireworks!
Parameters - giffile: full path for gif file to create - ite: iteration number from 1 to 151(record number of __color_list)
Program : %life_game Description : Simulates Conway's Game of Life in SAS and generates an animated GIF output. Uses a grid of cells initialized randomly or from an input dataset, applies the life game rules iteratively, and visualizes the process as a heatmap animation.
Author : Yutaka Morioka License : MIT
Parameters : outpath - File path to save the output GIF. outfilename - Name of the output GIF file (default: lifegame). seed - Random seed for initial cell generation (default: 777). loop - Number of iterations (animation frames) to simulate (default: 50). xwide - Width of the grid (default: 50). ywide - Height of the grid (default: 50). ds - Optional input dataset to use as the initial grid. If not provided, a random grid will be generated.
Output : Animated GIF file showing the evolution of the Game of Life simulation.
Notes :
- The initial grid is either randomly generated or taken from the specified dataset.
- Each cell's state is updated based on the standard rules of Conway's Game of Life.
- The macro uses SAS hash objects to efficiently access neighbor cells.
- The animation is rendered using PROC SGPLOT with heatmap visualization.
Usage Example: %life_game(outpath=D:\Users\Example\Output, outfilename=mygame, loop=100, xwide=60, ywide=60);
Here is the explanation of %sudoku_solver.
puzzle= : the Sudoku puzzle converted into a SAS dataset (Refer to the following 'prerequisites' section!) outputpath= : the directory where the results are output (LOG file or RTF file when rtfYN=Y) rtfYN= : Default is N. If you change this parameter to Y, an RTF output will be created in 'outputpath'.
%sudoku_solver(
puzzle=__sudoku__,
outputpath=/home/XXXXX/sudoku/,
rtfYN=Y
)data sudoku1; input c1-c9 8.; cards; 0 0 2 3 0 0 5 0 0 4 0 0 0 8 0 0 1 0 0 0 9 0 0 4 0 0 6 0 2 0 0 7 0 1 0 8 6 0 0 5 0 9 0 0 3 1 0 3 0 4 0 0 7 0 9 0 0 8 0 0 2 0 0 0 8 0 0 6 0 0 0 9 0 0 7 0 0 1 3 0 0 ;
- "Sudoku" is a registered trademark of Nikoli. (https://www.nikoli.co.jp/ja/puzzles/sudoku/)
- The maximum number of backtracks is set to 50,000.
- This is because most Sudoku puzzles can be solved within 50,000 backtracks.
- If there is a request to specify the number of backtracks in the macro parameter, I will consider it:)
- Author: Miyuki Aso
- Date: 2025-07-25
- Version: 0.1
Copyright (c) [2025] [Yutaka Morioka],[Hiroki Yamanobe],[Ryo Nakaya] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.