fruzsinaagocs / oscode Goto Github PK
View Code? Open in Web Editor NEWCode for efficient solution of oscillatory ordinary differential equations
License: BSD 3-Clause "New" or "Revised" License
Code for efficient solution of oscillatory ordinary differential equations
License: BSD 3-Clause "New" or "Revised" License
ts
passed to pyoscode.solve
is evenly spaced?In the documentation it says for the C++ interface that
- For the sake of speed, oscode will assume the grid of timepoints \omega and \gamma are given on is evenly spaced. It is possible not to supply an evenly spaced grid, this will be discussed later.
The pyscode documentation does not specify this. There it only says (note also awkward splitting of word independent
):
ts: numpy.ndarray [float] or list [float] An array of real numbers representing the values of the independe nt variable at which the frequency and friction term are evaluated.
If it indeed is assuming ts
to be evenly spaced, then it would probably be good to
ts
input accordingly and raise an error or at least a warning if the condition is violatedPossibly nice features:
ts
ts
, i.e. for np.logspace
time arrays as inputI remember having had issues previously with installing pyoscode (python setup.py install
) because of the error
pyoscode/_pyoscode.hpp:6:10: fatal error: Eigen/Dense: No such file or directory
and I'm running into this again now.
I have Eigen on my system, but how do I let pyoscode know where it is? What would be the best way of handling this? Do I need to create symlinks as mentioned in Eigen's Getting started?
It seems that there is an error for the installation on windows 10. The error message is "Microsoft Visual C++ 14.0 or greater is required'. It fails to build wheels for pyoscode.
As seen in #9, the travis CI is not actually using the Python versions that are requested in .travis.yml
. It seems to ignore the python
field completely and always uses the system Python, which typically is Python 2.7.
This becomes very clear with the commit cb90a3d that makes travis print out the used python version. See for example the job 195.1, where it shows that Python 2.7.17 was used instead of the expected Python 3.7.
solver@solver-mbook ~ % pip install pyoscode
Collecting pyoscode
Downloading pyoscode-1.0.0.tar.gz (70.2 MB)
|████████████████████████████████| 70.2 MB 498 kB/s
Collecting numpy
Using cached numpy-1.19.4-cp37-cp37m-macosx_10_9_x86_64.whl (15.3 MB)
Building wheels for collected packages: pyoscode
Building wheel for pyoscode (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: /usr/local/opt/python/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-install-qiallowx/pyoscode_a2904fd97ae3468e899ba2642c231cd0/setup.py'"'"'; __file__='"'"'/private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-install-qiallowx/pyoscode_a2904fd97ae3468e899ba2642c231cd0/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-wheel-jlqo7fx3
cwd: /private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-install-qiallowx/pyoscode_a2904fd97ae3468e899ba2642c231cd0/
Complete output (73 lines):
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Requirement already satisfied: numpy in /usr/local/lib/python3.7/site-packages (1.19.4)
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.15-x86_64-3.7
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode
copying pyoscode/__init__.py -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
running egg_info
writing pyoscode.egg-info/PKG-INFO
writing dependency_links to pyoscode.egg-info/dependency_links.txt
writing requirements to pyoscode.egg-info/requires.txt
writing top-level names to pyoscode.egg-info/top_level.txt
reading manifest file 'pyoscode.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pyoscode.egg-info/SOURCES.txt'
copying pyoscode/__init__.pyc -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
copying pyoscode/_pyoscode.cpp -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
copying pyoscode/_pyoscode.hpp -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
copying pyoscode/_python.hpp -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode/__pycache__
copying pyoscode/__pycache__/__init__.cpython-36.pyc -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/__pycache__
copying pyoscode/__pycache__/__init__.cpython-38.pyc -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/__pycache__
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs
copying pyoscode/docs/Makefile -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/conf.py -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/index.rst -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/introduction.rst -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/oscode.rst -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/pyoscode.rst -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/airy-example.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/burst-example.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/gamma.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/omega.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/oscillator.gif -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/oscillator.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/spectra.gif -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
running build_ext
building '_pyoscode' extension
Warning: Can't read registry to find the necessary compiler setting
Make sure that Python modules winreg, win32api or win32con are installed.
C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers
creating build/temp.macosx-10.15-x86_64-3.7
creating build/temp.macosx-10.15-x86_64-3.7/pyoscode
compile options: '-Iinclude -Ipyoscode -I/usr/local/include -I/usr/local/opt/[email protected]/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c'
extra options: '-std=c++11 -Wall'
clang: pyoscode/_pyoscode.cpp
In file included from pyoscode/_pyoscode.cpp:4:
In file included from include/system.hpp:2:
include/interpolator.hpp:74:20: warning: unused variable 'x1' [-Wunused-variable]
double x1 = xstart + (i+1)*dx;
^
include/interpolator.hpp:75:20: warning: unused variable 'x0' [-Wunused-variable]
double x0 = xstart + i*dx;
^
In file included from pyoscode/_pyoscode.cpp:5:
include/solver.hpp:280:38: warning: unused variable 'dx_dense_rk' [-Wunused-variable]
std::complex<double> x_dense_rk, dx_dense_rk;
^
include/solver.hpp:280:26: warning: unused variable 'x_dense_rk' [-Wunused-variable]
std::complex<double> x_dense_rk, dx_dense_rk;
^
pyoscode/_pyoscode.cpp:7:10: fatal error: 'numpy/arrayobject.h' file not found
#include <numpy/arrayobject.h>
^~~~~~~~~~~~~~~~~~~~~
4 warnings and 1 error generated.
error: Command "clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -Iinclude -Ipyoscode -I/usr/local/include -I/usr/local/opt/[email protected]/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c pyoscode/_pyoscode.cpp -o build/temp.macosx-10.15-x86_64-3.7/pyoscode/_pyoscode.o -std=c++11 -Wall" failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for pyoscode
Running setup.py clean for pyoscode
Failed to build pyoscode
Installing collected packages: numpy, pyoscode
Running setup.py install for pyoscode ... error
ERROR: Command errored out with exit status 1:
command: /usr/local/opt/python/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-install-qiallowx/pyoscode_a2904fd97ae3468e899ba2642c231cd0/setup.py'"'"'; __file__='"'"'/private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-install-qiallowx/pyoscode_a2904fd97ae3468e899ba2642c231cd0/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-record-kbjhui_b/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7m/pyoscode
cwd: /private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-install-qiallowx/pyoscode_a2904fd97ae3468e899ba2642c231cd0/
Complete output (73 lines):
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Requirement already satisfied: numpy in /usr/local/lib/python3.7/site-packages (1.19.4)
running install
running build
running build_py
creating build
creating build/lib.macosx-10.15-x86_64-3.7
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode
copying pyoscode/__init__.py -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
running egg_info
writing pyoscode.egg-info/PKG-INFO
writing dependency_links to pyoscode.egg-info/dependency_links.txt
writing requirements to pyoscode.egg-info/requires.txt
writing top-level names to pyoscode.egg-info/top_level.txt
reading manifest file 'pyoscode.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pyoscode.egg-info/SOURCES.txt'
copying pyoscode/__init__.pyc -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
copying pyoscode/_pyoscode.cpp -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
copying pyoscode/_pyoscode.hpp -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
copying pyoscode/_python.hpp -> build/lib.macosx-10.15-x86_64-3.7/pyoscode
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode/__pycache__
copying pyoscode/__pycache__/__init__.cpython-36.pyc -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/__pycache__
copying pyoscode/__pycache__/__init__.cpython-38.pyc -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/__pycache__
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs
copying pyoscode/docs/Makefile -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/conf.py -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/index.rst -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/introduction.rst -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/oscode.rst -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
copying pyoscode/docs/source/pyoscode.rst -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/docs/source
creating build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/airy-example.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/burst-example.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/gamma.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/omega.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/oscillator.gif -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/oscillator.png -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
copying pyoscode/images/spectra.gif -> build/lib.macosx-10.15-x86_64-3.7/pyoscode/images
running build_ext
building '_pyoscode' extension
Warning: Can't read registry to find the necessary compiler setting
Make sure that Python modules winreg, win32api or win32con are installed.
C compiler: clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers
creating build/temp.macosx-10.15-x86_64-3.7
creating build/temp.macosx-10.15-x86_64-3.7/pyoscode
compile options: '-Iinclude -Ipyoscode -I/usr/local/include -I/usr/local/opt/[email protected]/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c'
extra options: '-std=c++11 -Wall'
clang: pyoscode/_pyoscode.cpp
In file included from pyoscode/_pyoscode.cpp:4:
In file included from include/system.hpp:2:
include/interpolator.hpp:74:20: warning: unused variable 'x1' [-Wunused-variable]
double x1 = xstart + (i+1)*dx;
^
include/interpolator.hpp:75:20: warning: unused variable 'x0' [-Wunused-variable]
double x0 = xstart + i*dx;
^
In file included from pyoscode/_pyoscode.cpp:5:
include/solver.hpp:280:38: warning: unused variable 'dx_dense_rk' [-Wunused-variable]
std::complex<double> x_dense_rk, dx_dense_rk;
^
include/solver.hpp:280:26: warning: unused variable 'x_dense_rk' [-Wunused-variable]
std::complex<double> x_dense_rk, dx_dense_rk;
^
pyoscode/_pyoscode.cpp:7:10: fatal error: 'numpy/arrayobject.h' file not found
#include <numpy/arrayobject.h>
^~~~~~~~~~~~~~~~~~~~~
4 warnings and 1 error generated.
error: Command "clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -Iinclude -Ipyoscode -I/usr/local/include -I/usr/local/opt/[email protected]/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c pyoscode/_pyoscode.cpp -o build/temp.macosx-10.15-x86_64-3.7/pyoscode/_pyoscode.o -std=c++11 -Wall" failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/opt/python/bin/python3.7 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-install-qiallowx/pyoscode_a2904fd97ae3468e899ba2642c231cd0/setup.py'"'"'; __file__='"'"'/private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-install-qiallowx/pyoscode_a2904fd97ae3468e899ba2642c231cd0/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/tt/c5pb_r2131d25c9f_b2z7jrc0000gp/T/pip-record-kbjhui_b/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/include/python3.7m/pyoscode Check the logs for full command output.
I found an issue when instantiating the Solution
class via e.g. passing a std::vector<double>
to the const X &do_times
variable (same for a list). The time ordering of the dense output class member lists is off, which is also reflected in the associated output file. Another issue is that a part of the solution (probably the parts obtained with the RK solver) seem to have been set to 0.
To reproduce this in a minimal example, I modified the burst.cpp
file as follows (currently only non-dense output is included).
std::vector<double> temp;
for (int i = 0; i < 1000; ++i) { temp.push_back(-2*n + 4*n*i*0.001); }
de_system sys(&w, &g);
Solution solution(sys, x0, dx0, ti, tf, temp, 3, 1e-4, 0.0, 1, "native_do.dat");
solution.solve();
std::vector<double> do_ts(std::begin(solution.dotimes), std::end(solution.dotimes));
std::vector<std::complex<double> > do_xs(std::begin(solution.dosol), std::end(solution.dosol));
for (int i = 0; i < do_xs.size(); ++i)
{
std::cout << temp[i] << " " << do_ts[i] << " " << do_xs[i] << std::endl;
}
Both the printed lines and the contents of native_do.dat
should show the issues mentioned above.
@absurd-zipper Noted that when running burst.cpp
, a segmentation fault occurs.
Steps to reproduce the error (with g++ (GCC) 10.2.0):
git clone "https://github.com/fruzsinaagocs/oscode"
cd oscode
g++ -g -Wall -I include -std=c++11 -c -o examples/burst.o examples/burst.cpp
g++ -g -Wall -std=c++11 -o examples/burst examples/burst.o
./examples/burst
This is similar to #13 in that the dense output variables and hence also the data written to file are incorrect, e.g. set to 0. This only happens when both these conditions are met: (a) t_i
> t_f
and (b) the times in const X &do_times
are also decreasing.
To reproduce this in a minimal example, I again modified the burst.cpp file
as follows
ti = 2*n;
tf = -2*n;
std::vector<double> temp;
for (int i = 0; i < 1000; ++i) { temp.push_back(2*n - 4*n*i*0.001); }
de_system sys(&w, &g);
Solution solution(sys, x0, dx0, ti, tf, temp, 3, 1e-4, 0.0, 1, "native_do.dat");
solution.solve();
std::vector<double> do_ts(std::begin(solution.dotimes), std::end(solution.dotimes));
std::vector<std::complex<double> > do_xs(std::begin(solution.dosol), std::end(solution.dosol));
for (int i = 0; i < do_xs.size(); ++i)
{
std::cout << temp[i] << " " << do_ts[i] << " " << do_xs[i] << std::endl;
}
I guess one way to solve this is to ensure that the dense output times are always sorted in increasing order, as the issues does not seem to appear then.
At the moment my output gets flooded by warnings of the form:
Warning: the solver took 5000 steps, and may take a while to converge.
Warning: the step acceptance ratio is below 5%, the solver may take a while to converge.
Since things are running fine otherwise and timings don't seem to be catastrophic, the threshold of 5000 steps seems much too low for me. Does Oscode provide an option of reducing/suppressing these warnings? Else I might just hard code the threshold differently for me.
Just tried installing pyoscode on a different cluster and got this error:
>>> import pyoscode
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/lh561/Documents/Projects/OscodePrj/oscode/pyoscode/__init__.py", line 3, in <module>
import _pyoscode
ImportError: numpy.core.multiarray failed to import
Updating from numpy==1.19.5
to numpy>=1.20
solved this issue for me.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.