# Licensed under a 3-clause BSD style license - see PYFITS.rst
"""
Convenience functions
=====================
The functions in this module provide shortcuts for some of the most basic
operations on FITS files, such as reading and updating the header. They are
included directly in the 'astropy.io.fits' namespace so that they can be used
like::
astropy.io.fits.getheader(...)
These functions are primarily for convenience when working with FITS files in
the command-line interpreter. If performing several operations on the same
file, such as in a script, it is better to *not* use these functions, as each
one must open and re-parse the file. In such cases it is better to use
:func:`astropy.io.fits.open` and work directly with the
:class:`astropy.io.fits.HDUList` object and underlying HDU objects.
Several of the convenience functions, such as `getheader` and `getdata` support
special arguments for selecting which extension HDU to use when working with a
multi-extension FITS file. There are a few supported argument formats for
selecting the extension. See the documentation for `getdata` for an
explanation of all the different formats.
.. warning::
All arguments to convenience functions other than the filename that are
*not* for selecting the extension HDU should be passed in as keyword
arguments. This is to avoid ambiguity and conflicts with the
extension arguments. For example, to set NAXIS=1 on the Primary HDU:
Wrong::
astropy.io.fits.setval('myimage.fits', 'NAXIS', 1)
The above example will try to set the NAXIS value on the first extension
HDU to blank. That is, the argument '1' is assumed to specify an extension
HDU.
Right::
astropy.io.fits.setval('myimage.fits', 'NAXIS', value=1)
This will set the NAXIS keyword to 1 on the primary HDU (the default). To
specify the first extension HDU use::
astropy.io.fits.setval('myimage.fits', 'NAXIS', value=1, ext=1)
This complexity arises out of the attempt to simultaneously support
multiple argument formats that were used in past versions of PyFITS.
Unfortunately, it is not possible to support all formats without
introducing some ambiguity. A future Astropy release may standardize
around a single format and offically deprecate the other formats.
"""
import os
import numpy as np
from .file import FILE_MODES, _File
from .hdu.base import _BaseHDU, _ValidHDU
from .hdu.hdulist import fitsopen
from .hdu.image import PrimaryHDU, ImageHDU
from .hdu.table import BinTableHDU
from .header import Header
from .util import (fileobj_closed, fileobj_name, fileobj_mode,
fileobj_closed, _is_int)
from ...extern.six import string_types
from ...utils import deprecated
__all__ = ['getheader', 'getdata', 'getval', 'setval', 'delval', 'writeto',
'append', 'update', 'info', 'tdump', 'tcreate', 'tabledump',
'tableload']
[docs]def getdata(filename, *args, **kwargs):
"""
Get the data from an extension of a FITS file (and optionally the
header).
Parameters
----------
filename : file path, file object, or file like object
File to get data from. If opened, mode must be one of the
following rb, rb+, or ab+.
ext
The rest of the arguments are for extension specification.
They are flexible and are best illustrated by examples.
No extra arguments implies the primary header::
getdata('in.fits')
By extension number::
getdata('in.fits', 0) # the primary header
getdata('in.fits', 2) # the second extension
getdata('in.fits', ext=2) # the second extension
By name, i.e., ``EXTNAME`` value (if unique)::
getdata('in.fits', 'sci')
getdata('in.fits', extname='sci') # equivalent
Note ``EXTNAME`` values are not case sensitive
By combination of ``EXTNAME`` and EXTVER`` as separate
arguments or as a tuple::
getdata('in.fits', 'sci', 2) # EXTNAME='SCI' & EXTVER=2
getdata('in.fits', extname='sci', extver=2) # equivalent
getdata('in.fits', ('sci', 2)) # equivalent
Ambiguous or conflicting specifications will raise an exception::
getdata('in.fits', ext=('sci',1), extname='err', extver=2)
header : bool, optional
If `True`, return the data and the header of the specified HDU as a
tuple.
lower, upper : bool, optional
If ``lower`` or ``upper`` are `True`, the field names in the
returned data object will be converted to lower or upper case,
respectively.
view : ndarray, optional
When given, the data will be returned wrapped in the given ndarray
subclass by calling::
data.view(view)
kwargs
Any additional keyword arguments to be passed to
`astropy.io.fits.open`.
Returns
-------
array : array, record array or groups data object
Type depends on the type of the extension being referenced.
If the optional keyword ``header`` is set to `True`, this
function will return a (``data``, ``header``) tuple.
"""
mode, closed = _get_file_mode(filename)
header = kwargs.pop('header', None)
lower = kwargs.pop('lower', None)
upper = kwargs.pop('upper', None)
view = kwargs.pop('view', None)
hdulist, extidx = _getext(filename, mode, *args, **kwargs)
hdu = hdulist[extidx]
data = hdu.data
if data is None and extidx == 0:
try:
hdu = hdulist[1]
data = hdu.data
except IndexError:
raise IndexError('No data in this HDU.')
if data is None:
raise IndexError('No data in this HDU.')
if header:
hdr = hdu.header
hdulist.close(closed=closed)
# Change case of names if requested
trans = None
if lower:
trans = lambda s: s.lower()
elif upper:
trans = lambda s: s.upper()
if trans:
if data.dtype.names is None:
# this data does not have fields
return
if data.dtype.descr[0][0] == '':
# this data does not have fields
return
data.dtype.names = [trans(n) for n in data.dtype.names]
# allow different views into the underlying ndarray. Keep the original
# view just in case there is a problem
if isinstance(view, type) and issubclass(view, np.ndarray):
data = data.view(view)
if header:
return data, hdr
else:
return data
[docs]def getval(filename, keyword, *args, **kwargs):
"""
Get a keyword's value from a header in a FITS file.
Parameters
----------
filename : file path, file object, or file like object
Name of the FITS file, or file object (if opened, mode must be
one of the following rb, rb+, or ab+).
keyword : str
Keyword name
ext, extname, extver
The rest of the arguments are for extension specification.
See `getdata` for explanations/examples.
kwargs
Any additional keyword arguments to be passed to
`astropy.io.fits.open`.
*Note:* This function automatically specifies ``do_not_scale_image_data
= True`` when opening the file so that values can be retrieved from the
unmodified header.
Returns
-------
keyword value : str, int, or float
"""
if 'do_not_scale_image_data' not in kwargs:
kwargs['do_not_scale_image_data'] = True
hdr = getheader(filename, *args, **kwargs)
return hdr[keyword]
[docs]def setval(filename, keyword, *args, **kwargs):
"""
Set a keyword's value from a header in a FITS file.
If the keyword already exists, it's value/comment will be updated.
If it does not exist, a new card will be created and it will be
placed before or after the specified location. If no ``before`` or
``after`` is specified, it will be appended at the end.
When updating more than one keyword in a file, this convenience
function is a much less efficient approach compared with opening
the file for update, modifying the header, and closing the file.
Parameters
----------
filename : file path, file object, or file like object
Name of the FITS file, or file object If opened, mode must be update
(rb+). An opened file object or `~gzip.GzipFile` object will be closed
upon return.
keyword : str
Keyword name
value : str, int, float, optional
Keyword value (default: `None`, meaning don't modify)
comment : str, optional
Keyword comment, (default: `None`, meaning don't modify)
before : str, int, optional
Name of the keyword, or index of the card before which the new card
will be placed. The argument ``before`` takes precedence over
``after`` if both are specified (default: `None`).
after : str, int, optional
Name of the keyword, or index of the card after which the new card will
be placed. (default: `None`).
savecomment : bool, optional
When `True`, preserve the current comment for an existing keyword. The
argument ``savecomment`` takes precedence over ``comment`` if both
specified. If ``comment`` is not specified then the current comment
will automatically be preserved (default: `False`).
ext, extname, extver
The rest of the arguments are for extension specification.
See `getdata` for explanations/examples.
kwargs
Any additional keyword arguments to be passed to
`astropy.io.fits.open`.
*Note:* This function automatically specifies ``do_not_scale_image_data
= True`` when opening the file so that values can be retrieved from the
unmodified header.
"""
if 'do_not_scale_image_data' not in kwargs:
kwargs['do_not_scale_image_data'] = True
value = kwargs.pop('value', None)
comment = kwargs.pop('comment', None)
before = kwargs.pop('before', None)
after = kwargs.pop('after', None)
savecomment = kwargs.pop('savecomment', False)
hdulist, extidx = _getext(filename, 'update', *args, **kwargs)
if keyword in hdulist[extidx].header and savecomment:
comment = None
hdulist[extidx].header.set(keyword, value, comment, before, after)
hdulist.close()
[docs]def delval(filename, keyword, *args, **kwargs):
"""
Delete all instances of keyword from a header in a FITS file.
Parameters
----------
filename : file path, file object, or file like object
Name of the FITS file, or file object If opened, mode must be update
(rb+). An opened file object or `~gzip.GzipFile` object will be closed
upon return.
keyword : str, int
Keyword name or index
ext, extname, extver
The rest of the arguments are for extension specification.
See `getdata` for explanations/examples.
kwargs
Any additional keyword arguments to be passed to
`astropy.io.fits.open`.
*Note:* This function automatically specifies ``do_not_scale_image_data
= True`` when opening the file so that values can be retrieved from the
unmodified header.
"""
if 'do_not_scale_image_data' not in kwargs:
kwargs['do_not_scale_image_data'] = True
hdulist, extidx = _getext(filename, 'update', *args, **kwargs)
del hdulist[extidx].header[keyword]
hdulist.close()
[docs]def writeto(filename, data, header=None, output_verify='exception',
clobber=False, checksum=False):
"""
Create a new FITS file using the supplied data/header.
Parameters
----------
filename : file path, file object, or file like object
File to write to. If opened, must be opened in a writeable binary
mode such as 'wb' or 'ab+'.
data : array, record array, or groups data object
data to write to the new file
header : `Header` object, optional
the header associated with ``data``. If `None`, a header
of the appropriate type is created for the supplied data. This
argument is optional.
output_verify : str
Output verification option. Must be one of ``"fix"``, ``"silentfix"``,
``"ignore"``, ``"warn"``, or ``"exception"``. May also be any
combination of ``"fix"`` or ``"silentfix"`` with ``"+ignore"``,
``+warn``, or ``+exception" (e.g. ``"fix+warn"``). See :ref:`verify`
for more info.
clobber : bool, optional
If `True`, and if filename already exists, it will overwrite
the file. Default is `False`.
checksum : bool, optional
If `True`, adds both ``DATASUM`` and ``CHECKSUM`` cards to the
headers of all HDU's written to the file.
"""
hdu = _makehdu(data, header)
if hdu.is_image and not isinstance(hdu, PrimaryHDU):
hdu = PrimaryHDU(data, header=header)
hdu.writeto(filename, clobber=clobber, output_verify=output_verify,
checksum=checksum)
[docs]def append(filename, data, header=None, checksum=False, verify=True, **kwargs):
"""
Append the header/data to FITS file if filename exists, create if not.
If only ``data`` is supplied, a minimal header is created.
Parameters
----------
filename : file path, file object, or file like object
File to write to. If opened, must be opened for update (rb+) unless it
is a new file, then it must be opened for append (ab+). A file or
`~gzip.GzipFile` object opened for update will be closed after return.
data : array, table, or group data object
the new data used for appending
header : `Header` object, optional
The header associated with ``data``. If `None`, an appropriate header
will be created for the data object supplied.
checksum : bool, optional
When `True` adds both ``DATASUM`` and ``CHECKSUM`` cards to the header
of the HDU when written to the file.
verify : bool, optional
When `True`, the existing FITS file will be read in to verify it for
correctness before appending. When `False`, content is simply appended
to the end of the file. Setting ``verify`` to `False` can be much
faster.
kwargs
Any additional keyword arguments to be passed to
`astropy.io.fits.open`.
"""
name, closed, noexist_or_empty = _stat_filename_or_fileobj(filename)
if noexist_or_empty:
#
# The input file or file like object either doesn't exits or is
# empty. Use the writeto convenience function to write the
# output to the empty object.
#
writeto(filename, data, header, checksum=checksum, **kwargs)
else:
hdu = _makehdu(data, header)
if isinstance(hdu, PrimaryHDU):
hdu = ImageHDU(data, header)
if verify or not closed:
f = fitsopen(filename, mode='append')
f.append(hdu)
# Set a flag in the HDU so that only this HDU gets a checksum when
# writing the file.
hdu._output_checksum = checksum
f.close(closed=closed)
else:
f = _File(filename, mode='append')
hdu._output_checksum = checksum
hdu._writeto(f)
f.close()
[docs]def update(filename, data, *args, **kwargs):
"""
Update the specified extension with the input data/header.
Parameters
----------
filename : file path, file object, or file like object
File to update. If opened, mode must be update (rb+). An opened file
object or `~gzip.GzipFile` object will be closed upon return.
data : array, table, or group data object
the new data used for updating
header : `Header` object, optional
The header associated with ``data``. If `None`, an appropriate header
will be created for the data object supplied.
ext, extname, extver
The rest of the arguments are flexible: the 3rd argument can be the
header associated with the data. If the 3rd argument is not a
`Header`, it (and other positional arguments) are assumed to be the
extension specification(s). Header and extension specs can also be
keyword arguments. For example::
update(file, dat, hdr, 'sci') # update the 'sci' extension
update(file, dat, 3) # update the 3rd extension
update(file, dat, hdr, 3) # update the 3rd extension
update(file, dat, 'sci', 2) # update the 2nd SCI extension
update(file, dat, 3, header=hdr) # update the 3rd extension
update(file, dat, header=hdr, ext=5) # update the 5th extension
kwargs
Any additional keyword arguments to be passed to
`astropy.io.fits.open`.
"""
# The arguments to this function are a bit tricker to deal with than others
# in this module, since the documentation has promised that the header
# argument can be an optional positional argument.
if args and isinstance(args[0], Header):
header = args[0]
args = args[1:]
else:
header = None
# The header can also be a keyword argument--if both are provided the
# keyword takes precedence
header = kwargs.pop('header', header)
new_hdu = _makehdu(data, header)
closed = fileobj_closed(filename)
hdulist, _ext = _getext(filename, 'update', *args, **kwargs)
hdulist[_ext] = new_hdu
hdulist.close(closed=closed)
[docs]def info(filename, output=None, **kwargs):
"""
Print the summary information on a FITS file.
This includes the name, type, length of header, data shape and type
for each extension.
Parameters
----------
filename : file path, file object, or file like object
FITS file to obtain info from. If opened, mode must be one of
the following: rb, rb+, or ab+ (i.e. the file must be readable).
output : file, bool, optional
A file-like object to write the output to. If ``False``, does not
output to a file and instead returns a list of tuples representing the
HDU info. Writes to ``sys.stdout`` by default.
kwargs
Any additional keyword arguments to be passed to
`astropy.io.fits.open`.
*Note:* This function sets ``ignore_missing_end=True`` by default.
"""
mode, closed = _get_file_mode(filename, default='readonly')
# Set the default value for the ignore_missing_end parameter
if not 'ignore_missing_end' in kwargs:
kwargs['ignore_missing_end'] = True
f = fitsopen(filename, mode=mode, **kwargs)
ret = f.info(output=output)
if closed:
f.close()
return ret
[docs]def tabledump(filename, datafile=None, cdfile=None, hfile=None, ext=1,
clobber=False):
"""
Dump a table HDU to a file in ASCII format. The table may be
dumped in three separate files, one containing column definitions,
one containing header parameters, and one for table data.
 The default is the root name of the input
fits file appended with an underscore, followed by the
extension number (ext), followed by the extension ``.txt``.
cdfile : file path, file object or file-like object, optional
Output column definitions file. The default is `None`,
no column definitions output is produced.
hfile : file path, file object or file-like object, optional
Output header parameters file. The default is `None`,
no header parameters output is produced.
ext : int
The number of the extension containing the table HDU to be
dumped.
clobber : bool
Overwrite the output files if they exist.
Notes
-----
The primary use for the `tabledump` function is to allow editing in a
standard text editor of the table data and parameters. The
``tcreate`` function can be used to reassemble the table from the
three ASCII files.
"""
# allow file object to already be opened in any of the valid modes
# and leave the file in the same state (opened or closed) as when
# the function was called
mode, closed = _get_file_mode(filename, default='readonly')
f = fitsopen(filename, mode=mode)
# Create the default data file name if one was not provided
if not datafile:
# TODO: Really need to provide a better way to access the name of any
# files underlying an HDU
root, tail = os.path.splitext(f._HDUList__file.name)
datafile = root + '_' + repr(ext) + '.txt'
# Dump the data from the HDU to the files
f[ext].dump(datafile, cdfile, hfile, clobber)
if closed:
f.close()
tabledump.__doc__ += BinTableHDU._tdump_file_format.replace('\n', '\n ')
@deprecated('0.1', alternative=':func:`tabledump`')
def tdump(filename, datafile=None, cdfile=None, hfile=None, ext=1,
clobber=False):
tabledump(filename, datafile, cdfile, hfile, ext, clobber)
[docs]def tableload(datafile, cdfile, hfile=None):
"""
Create a table from the input ASCII files. The input is from up
to three separate files, one containing column definitions, one
containing header parameters, and one containing column data. The
header parameters file is not required. When the header
parameters file is absent a minimal header is constructed.
Parameters
----------
datafile : file path, file object or file-like object
Input data file containing the table data in ASCII format.
cdfile : file path, file object or file-like object
Input column definition file containing the names, formats,
display formats, physical units, multidimensional array
dimensions, undefined values, scale factors, and offsets
associated with the columns in the table.
hfile : file path, file object or file-like object, optional
Input parameter definition file containing the header
parameter definitions to be associated with the table.
If `None`, a minimal header is constructed.
Notes
-----
The primary use for the `tableload` function is to allow the input of
ASCII data that was edited in a standard text editor of the table
data and parameters. The tabledump function can be used to create the
initial ASCII files.
"""
return BinTableHDU.load(datafile, cdfile, hfile, replace=True)
tableload.__doc__ += BinTableHDU._tdump_file_format.replace('\n', '\n ')
@deprecated('0.1', alternative=':func:`tableload`')
def tcreate(datafile, cdfile, hfile=None):
return tableload(datafile, cdfile, hfile)
def _getext(filename, mode, *args, **kwargs):
"""
Open the input file, return the `HDUList` and the extension.
This supports several different styles of extension selection. See the
:func:`getdata()` documentation for the different possibilities.
"""
ext = kwargs.pop('ext', None)
extname = kwargs.pop('extname', None)
extver = kwargs.pop('extver', None)
err_msg = ('Redundant/conflicting extension arguments(s): %s' %
({'args': args, 'ext': ext, 'extname': extname,
'extver': extver},))
# This code would be much simpler if just one way of specifying an
# extension were picked. But now we need to support all possible ways for
# the time being.
if len(args) == 1:
# Must be either an extension number, an extension name, or an
# (extname, extver) tuple
if _is_int(args[0]) or (isinstance(ext, tuple) and len(ext) == 2):
if ext is not None or extname is not None or extver is not None:
raise TypeError(err_msg)
ext = args[0]
elif isinstance(args[0], string_types):
# The first arg is an extension name; it could still be valid
# to provide an extver kwarg
if ext is not None or extname is not None:
raise TypeError(err_msg)
extname = args[0]
else:
# Take whatever we have as the ext argument; we'll validate it
# below
ext = args[0]
elif len(args) == 2:
# Must be an extname and extver
if ext is not None or extname is not None or extver is not None:
raise TypeError(err_msg)
extname = args[0]
extver = args[1]
elif len(args) > 2:
raise TypeError('Too many positional arguments.')
if (ext is not None and
not (_is_int(ext) or
(isinstance(ext, tuple) and len(ext) == 2 and
isinstance(ext[0], string_types) and _is_int(ext[1])))):
raise ValueError(
'The ext keyword must be either an extension number '
'(zero-indexed) or a (extname, extver) tuple.')
if extname is not None and not isinstance(extname, string_types):
raise ValueError('The extname argument must be a string.')
if extver is not None and not _is_int(extver):
raise ValueError('The extver argument must be an integer.')
if ext is None and extname is None and extver is None:
ext = 0
elif ext is not None and (extname is not None or extver is not None):
raise TypeError(err_msg)
elif extname:
if extver:
ext = (extname, extver)
else:
ext = (extname, 1)
elif extver and extname is None:
raise TypeError('extver alone cannot specify an extension.')
hdulist = fitsopen(filename, mode=mode, **kwargs)
return hdulist, ext
def _makehdu(data, header):
if header is None:
header = Header()
hdu = _BaseHDU(data, header)
if hdu.__class__ in (_BaseHDU, _ValidHDU):
# The HDU type was unrecognized, possibly due to a
# nonexistent/incomplete header
if ((isinstance(data, np.ndarray) and data.dtype.fields is not None)
or isinstance(data, np.recarray)):
hdu = BinTableHDU(data)
elif isinstance(data, np.ndarray):
hdu = ImageHDU(data)
else:
raise KeyError('Data must be a numpy array.')
return hdu
def _stat_filename_or_fileobj(filename):
closed = fileobj_closed(filename)
name = fileobj_name(filename) or ''
try:
loc = filename.tell()
except AttributeError:
loc = 0
noexist_or_empty = ((name and
(not os.path.exists(name) or
(os.path.getsize(name) == 0)))
or (not name and loc == 0))
return name, closed, noexist_or_empty
def _get_file_mode(filename, default='readonly'):
"""
Allow file object to already be opened in any of the valid modes and
and leave the file in the same state (opened or closed) as when
the function was called.
"""
mode = default
closed = fileobj_closed(filename)
fmode = fileobj_mode(filename)
if fmode is not None:
mode = FILE_MODES.get(fmode)
if mode is None:
raise IOError(
"File mode of the input file object (%r) cannot be used to "
"read/write FITS files." % fmode)
return mode, closed


Key: = Must support, = QICore-defined extension, = Is-Modifier
| Field | Card. | Type and Description |
|---|---|---|
| category |
0..1
|
code
|
| dateWritten |
0..1
|
DateTime
|
| dispenseRequest |
0..1
|
DispenseRequest
|
| dosageInstruction |
0..*
|
List<DosageInstruction>
|
| encounter |
0..1
|
Encounter
|
| eventHistory |
0..*
|
List<EventHistory>
|
| identifier |
0..*
|
List<Identifier>
|
| medication[x] |
1..1
|
Concept | Medication
|
| note |
0..*
|
List<Annotation>
|
| patient |
0..1
|
Patient
|
| prescriber |
0..1
|
Practitioner
|
| priorPrescription |
0..1
|
MedicationOrder
|
| reasonCode |
0..*
|
List<Concept>
|
| reasonReference |
0..*
|
List<Condition>
|
| status |
0..1
|
code
|
| substitution |
0..1
|
Substitution
|
Key: = Must support, = QICore-defined extension, = Is-Modifier


Total students: {{ total_students }}
Students with modified materials: {{ number_of_modified_students }}
| Fitness before: | {{ student["fitness_before"] }} |
|---|---|
| Fitness now: | {{ student["fitness_now"] }} |
| Modified materials: | {{ student["modified_materials"] }} |
| Material ID: | {{ material["material_id"] }} |
| Added concepts: | {{ material["added_concepts"] }} |
| Removed concepts: | {{ material["removed_concepts"] }} |


THIS IS NOLONGER RELEVANT
I will leave it here if you still want to use the mods.
Brocraft mod setup
Fabric Mod Loader
To play Brocraftmc you will need some mods. The mod loader is the we use is Fabric.
Downloads: Fabric
Immersive Portals
Immersive Portals is required as it modifys the fundamentals of portals.

Downloads: Roughly Enough Items
Shulker Box Tooltip
Shulker Box Tooltip is not required to play. This mod enables you to have a look inside shulker boxes and ender chast without placing them. This mod comes in handy when searching for a specific item.
Downloads: Shulker Box Tooltip
Optfine
Optifabric is not required to play. This is a mod for fabric that adds the ability to use optfine. You will need the mod and the optfine jar. To install, put the optifabric.jar inside the mods folder as well as the optifine.jar
Downloads: Optifabric Optifine


class WebNavigationActionManager
A manager that have some actions to process. This actions should be added before load the url in WebWrapper. The wrapper has a client to override the loading of any url in the web view and use WebWrapper.overrideUrlLoading to pass the responsibility to this class to process that Uri.
The actions must be a WebNavigationAction and your aim is catch only the url that need and the result is a navigation inside or outside your application.
Any another action that does not imply a navigation must be implements with WebJsEventManager.
See Also
WebNavigationActionManager()
A manager that have some actions to process. This actions should be added before load the url in WebWrapper. The wrapper has a client to override the loading of any url in the web view and use WebWrapper.overrideUrlLoading to pass the responsibility to this class to process that Uri. |
fun addAction(: WebNavigationAction): Unit
Add a new action to this manager. |
|
fun processUri(: Context, : Uri): Boolean
Called from WebWrapper to process each Uri dispatched by the web view client. |
|
fun removeAllActions(): Unit
Remove all actions from manager. |


Bibliography¶
This is the collection of citations that I deemed to be essential in building this set of codes. We stand on the shoulders of giants, but unfortunately, citing all giants become impossible quickly. You can cite the toolbox as
I tried my best to give an attribution to
and each section has descriptions on relevant papers. Please report if I attributed some ideas to the wrong people (for the introduction of idea citation).
| [Ahn, 2018] | SeHyoun Ahn. Sparse grids. Working Paper, 2018. |
Footnotes
| [1] | Disclaimer: It is impossible not to be biased in one’s opinion of clarity, and I have not read all papers in everything I have used. Hence, it should be read as “where SeHyoun learned the ideas from.” |
| [2] | I considered non-open-access journal articles with author’s copy of the paper on author’s webpage as “accessible.” |


Top Questions
6
votes
7
answers
251
views
0
votes
0
answers
0
views
1
vote
2
answers
27
views
2
votes
1
answer
39
views
0
votes
2
answers
22
views
1
vote
3
answers
43
views
1
vote
1
answer
7
views
0
votes
1
answer
19
views
0
votes
2
answers
11
views
0
votes
1
answer
7
views
1
vote
1
answer
8
views
0
votes
2
answers
6
views
0
votes
0
answers
5
views
0
votes
0
answers
1
view
0
votes
0
answers
3
views
1
vote
2
answers
69
views
0
votes
0
answers
4
views
2
votes
1
answer
16
views
0
votes
1
answer
5
views
3
votes
7
answers
314
views
0
votes
1
answer
2
views
0
votes
1
answer
28
views
4
votes
1
answer
72
views
1
vote
2
answers
14
views
2
votes
0
answers
6
views
6
votes
7
answers
2
kviews
0
votes
1
answer
2
views
2
votes
0
answers
13
views
0
votes
4
answers
39
views
0
votes
1
answer
18
views
0
votes
0
answers
9
views
0
votes
2
answers
8
views
0
votes
1
answer
10
views
4
votes
1
answer
18
views
0
votes
2
answers
9
views
2
votes
2
answers
67
views
0
votes
0
answers
6
views
0
votes
0
answers
6
views
0
votes
1
answer
14
views
0
votes
1
answer
13
views
0
votes
0
answers
9
views
0
votes
0
answers
2
views
0
votes
2
answers
46
views
5
votes
7
answers
215
views
0
votes
1
answer
11
views
0
votes
1
answer
7
views
3
votes
1
answer
435
views
0
votes
0
answers
4
views
2
votes
4
answers
68
views
1
vote
0
answers
36
views
1
vote
2
answers
38
views
0
votes
2
answers
30
views
3
votes
1
answer
18
views
0
votes
2
answers
39
views
0
votes
0
answers
4
views
0
votes
1
answer
20
views
3
votes
4
answers
50
views
2
votes
4
answers
38
views
0
votes
1
answer
23
views
0
votes
2
answers
36
views
1
vote
4
answers
71
views
0
votes
2
answers
10
views
0
votes
3
answers
14
views
2
votes
2
answers
49
views
0
votes
2
answers
66
views
0
votes
2
answers
42
views
0
votes
0
answers
7
views
3
votes
5
answers
55
views
2
votes
0
answers
48
views
0
votes
1
answer
17
views
0
votes
1
answer
23
views
0
votes
1
answer
6
views
0
votes
0
answers
10
views
0
votes
1
answer
9
views
0
votes
0
answers
5
views
3
votes
1
answer
32
views
1
vote
0
answers
3
views
5
votes
5
answers
666
views
2
votes
2
answers
56
views
1
vote
3
answers
53
views
0
votes
0
answers
20
views
0
votes
1
answer
10
views
1
vote
1
answer
20
views
1
vote
4
answers
66
views
1
vote
1
answer
14
views
1
vote
1
answer
16
views
1
vote
3
answers
572
views
3
votes
2
answers
47
views
0
votes
3
answers
21
views
0
votes
1
answer
10
views
1
vote
2
answers
24
views
0
votes
1
answer
9
views
2
votes
4
answers
93
views
1
vote
2
answers
21
views
0
votes
4
answers
43
views
1
vote
2
answers
22
views


The TFL is Fucked
The TFL’s in British Columbia are huge. Theyre visible from space. The perception of “Beautiful” British Columbia as the “super-natural” and “wild” west can be crushed in 5 minutes by viewing the chequered remains of the last temperate rainforest on the planet on google maps.
Needless to say, the two days it takes to plant a single piece of a block on a small TFL are a pittance in comparison to the work which would need to be done to heal the province.
Loosely regulated logging is bad. There aren’t many conditions that dictate how a company logs their TFL, but luckily, one of them is that a forest must be replanted to some extent after its killed. My friend Rylee and I were assigned to plant the piece of the block that contained Dougy, and that is how this picture came to be.
Stuck in Your Own Head
Rylee and I didn’t quite see eye-to-eye on those two days. We hadn’t planted together before, and from what I remember, there was some drama going on in camp which sharpened our tempers somewhat. So after planting the boundary together, we ended up on opposite ends of the piece. I drifted towards Dougys end. Until we were done the piece, we were separated by two house sized piles of debris which West Fraser left behind after they were done raping Dougys neighbours.
If you want to make money planting, you cant get lost in your own head. You have to stay focused. You have to keep up with the clock and your own expectations. This wasnt a money day though, and walking circles around Dougy had me thinking the whole time.
What would it be like to be Dougy?
Well, Dougy would see that what was left of (their?) home would look “more like the battle of Passchendaele” than a forest as Stuart Maclean put it. They would see the scarred expanse of slashed limbs a meter high over a dried-up bed of redrot. Out to the horizon, patches of old stands of trees like Dougy wouldn’t stick out easier if they were shoved onto the surface of Mars. Some of this battleground is green with uniformly spread lines of human-sized Pine trees. Other parts, like the land behind me, is covered in baby Spruce saplings and bright blue non-degradable plastic flagger.
Somethings Gotta Give
The tree-hugger image of planters isn’t accurate. We are farmers working the city-sized fields of West Fraser and Canfor. Were the “hands”, to use a synectoche, of a child that has greedily devoured some chocolate it stole from the cupboard and has been told to clean up their mess. The forest can restore itself with the help of planters, but as things stand, or rather fall, the trees that Rylee and I planted will also be cut down in a matter of 80 years.
However, there is a change coming.
People have realized that forests are as important as our lungs.  This analogy is extremely appropriate; consider how Brazil is burning the amazon. There exist methods of logging just as there exist solutions to many ecological dilemma which can allow human beings to co-exist with the rest of the planet.
In terms of logging in particular, leaving more retention on a block when cutting out trees will not entirely kill ecosystems. Logging companies in turn wont have to pay for planters to return to fill-plant as often since saplings would be better protected. The summers are getting hotter, and sapling mortality rate is increasing. The idea of TFL’s is a hundred years old. Its time to enforce new logging regulation.
 I hadnt noticed while these thoughts drifted through my head that I had planted Rylee into the slashiest hell-hole from here to kingdom come.  I now have the prestigious Jamie award for “waviest lines”. Rylee and I finished the season laughing. I thoroughly enjoyed the next block that I partner planted with her. We have many fun planting adventures to look forward to.
At the end of the day, I folded up some K&C boxes and pulled out my block Pentax. It was hard to get Dougy into the frame, but thats a good thing. Nature shouldn’t bow to us so that we can get symmetric selfies and conformed images of landscapes.
I believe that crudeness present in natural photography reflects a real relationship with the subject. I hope that my relationship with Dougy is manifested in that way here.
Most natural photography today is comical; what are effectively shots of zoos, or hyper-edited photos that force a subject to take an unnatural form crowd vapid instagrams. Dougy is not perfect, and neither is this image. It is this imperfection though, that has granted Dougy their life. If it weren’t for a fork in their trunk towards the top, West Fraser would have cut them down with all their friends.
I left Dougy surrounded with new friends, and if we are willing to let them have it, I left them with a future as well.


Member of OFCS Online Film Critics Society
WILDE
In an electrifying performance that has "Oscar" (no pun!) written all over it, Stephan Fry brings to life Oscar Wilde in this new film about this most remarkable (again, no pun) man. Fry's portrayal will come as no surprise to those who remember him for his performances in COLD COMFORT FARM, A FISH CALLED WANDA, I.Q., PETER'S FRIENDS, as well as his unruffable Jeeves. In this version of Wilde, we see the many facets that brought Wilde to the attention of the world.
Despite a most flashy style of dress and demeanor that was shown to his admiring public, in private life his manner was that of a devoted family man to his dearly beloved wife, Constance (Jennifer Ehle) and his two children. In a weak moment, however, a young guest seduced him, making him aware of his homosexuality that had been kept in abeyance since his school days when he first became conscious of it. When later, at the age of 38, he met the very handsome Lord Alfred Douglas, a 22-year-old Oxford graduate, he entered the path that in a Victorian age with its strong anti-gay bias could only lead to his downfall. When his new friend introduced him to "rent boys," male prostitutes, it inevitably lead him further to neglect his wife and children and culminated in a disgracing jail sentence for "lewd conduct" with men.
Despite the passion for his male friends and his new life, he remained a most popular author and wit. Some of his better-known works included books and plays: LADY WINDERMERE'S FAN, THE IMPORTANCE OF BEING EARNEST, THE PICTURE OF DORIAN GRAY . Among his many witticisms, perhaps the best known are: "In this world there are only two tragedies. One is not getting what one wants, and the other is getting it." "To love oneself is the beginning of a lifelong romance." "We are all in the gutter but some of us are looking at the stars." "There is no sin except stupidity." "The only way to get rid of a temptation is to yield to it."
The film story of Oscar Wilde is beautifully brought to life because of its excellent cast. With Jude Law, Vanessa Redgrave, Jennifer Ehle, Gemma Jones, Judy Parfitt, Michael Sheen, Zoe Wanamker and Tom Wilkinson doing the honors of supporting Fry, the film is sheer perfection.
Directed by Brian Gilbert.
4 Bytes
4 Bytes = Superb 3 Bytes = Too good to miss 2 Bytes = Average 1 Byte = Save your money
Copyright 1998 Ben Hoffman
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Higher-order Predicates
Prolog predicates that take predicates as arguments are
called higher-order predicates, or meta-predicates.
| Video: |
|
call/N
The call/N family
of built-in predicates allow us to
call Prolog partial goals
dynamically. A partial goal is a term that denotes a
Prolog goal to which zero or more arguments are added before it is
called.
The mechanism to invoke arbitrary Prolog goals dynamically is
called meta-call, and it is the basic building block by
which we can define arbitrary meta-predicates in Prolog.
Importantly, the call/N family of predicates
retain logical purity of the
predicates they call.
Like most meta-predicates, call/N could
in principle be implemented in Prolog itself. For
example, we could implement call/1 as follows, using one
clause for each available predicate:
call(true).
call(X #= Y) :- X #= Y.
call(call(G)) :- call(G).
etc.
Of course, this would need an impractical number of clauses
in practice, and for this reason the call/N family
of predicates is implemented differently.
maplist/N
The predicates maplist/2 and maplist/3 are among
the most important and most frequently used meta-predicates. All
widely used Prolog systems provide them as built-in or library
predicates.
The goal maplist(Pred_1, Ls) is true
iff call(Pred_1, L) is true for each
element L in the list Ls.
The goal maplist(Pred_2, As, Bs) is true
iff call(Pred_2, A, B) is true for each pair of
elements A∈As
and B∈Bs that have the same index.
There are further predicates in this family
(maplist/[4,5,...]) that are less frequently used.
If your Prolog system does not provide these predicates, you can
easily define them yourself. For example, maplist/3 is
declaratively equivalent to:
maplist(_, [], []).
maplist(Pred_2, [A|As], [B|Bs]) :-
call(Pred_2, A, B),
maplist(Pred_2, As, Bs).
Using goal expansion, the meta-call can
be compiled away in many cases to improve performance.
The primary advantage of maplist/N is that you can lift
any relation that holds for a single element (or single
pair, triple, etc. of elements) to lists of such elements
(or corresponding elements).
For example, we can state that a term E
is different from all elements in Ls:
?- maplist(dif(E), Ls).
Ls = []
; Ls = [_A], dif:dif(E,_A)
; Ls = [_A,_B], dif:dif(E,_A), dif:dif(E,_B)
; Ls = [_A,_B,_C], dif:dif(E,_A), dif:dif(E,_B), dif:dif(E,_C)
; ... .
This works in all directions, even if Ls is not
instantiated.
if_/3 and related predicates
The meta-predicate if_/3 is an important recent
development that is described
in Indexing
dif/2 by Ulrich Neumerkel and Stefan Kral.
Implementations are available for:
- SICStus Prolog: library(reif)
- Scryer Prolog ships with library(reif). Post ?- use_module(library(reif)). to use if_/3 and related meta-predicates.
- SWI-Prolog: library(reif)
Importantly, if_/3 combines desirable declarative
properties with good performance in many situations of high
practical relevance.
For example, the predicate hailstone/2 that is described
in Basic Concepts can be
expressed with if_/3 as follows:
hailstone(N, N).
hailstone(N0, N) :-
R #= N0 mod 2,
if_(R = 0,
N0 #= 2*N1,
N1 #= 3*N0 + 1),
hailstone(N1, N).
if_/3 correctly commits to one of the two alternatives
when admissible and retains full generality.
See also the predicates tfilter/3, tpartition/4 and
other features that are provided by this important new library.
foldl/N
The foldl/N family of predicates describe a fold from
the left of a list. You can think of a fold as a list
traversal with intermediate states. An intermediate state
becomes final when no more elements remain.
The most frequently used of these predicates
is foldl/4:
foldl(Pred_3, Ls, S0, S) describes a fold from the left
of the list Ls, where S0 is the initial state
and S is the final state. For each
element L∈Ls and intermediate
state Sn, call(Pred_3, L,
Sn, Sn+1) is invoked to relate the
current list element L and intermediate
state Sn to the next intermediate
state Sn+1.
Again, these predicates let us focus on the relation for one
element at a time, and then lift this relation to lists of
elements.
For example, consider the following relation between two integers
and their sum:
integer_integer_sum(A, B, S) :- S #= A + B.
Using this relation, we can express the sum of
a list Ls of integers with foldl/4,
using 0 as the initial state:
?- foldl(integer_integer_sum, Ls, 0, S).
Ls = [], S = 0
; Ls = [S], clpz:(S in inf..sup)
; Ls = [_A,_B], clpz:(_B+_A#=S)
; Ls = [_A,_B,_C], clpz:(_B+_A#=_J), clpz:(_C+_J#=S)
; ... .
As another example, we can define the maximum of a
list Ls of integers as follows:
list_maximum([L|Ls], Max) :- foldl(maximum_, Ls, L, Max).
maximum_(A, B, Max) :- Max #= max(A, B).
In this case, we use the first element of the list as the initial state.
All solutions predicates
There are several built-in predicates that let us obtain all
solutions of a predicate.
These predicates transform solutions that are normally found on
backtracking to lists of solutions. The former is sometimes
called a temporal representation, and the latter
a spatial representation.
The most important such predicates
are bagof/3, setof/3
and findall/3.
In general, reasoning about the database in this way
destroys monotonicity of your programs: After adding
a clause, goals that previously succeeded may fail if
these predicates are used. This may
render declarative debugging approaches
inapplicable. One way to see why these predicates are problematic
is to observe that (\+)/1 ("not provable") can be
implemented via findall/3:
\+ Goal :- findall(., Goal, []).
For this reason, use these predicates with caution.
Further reading
Ulrich
Neumerkel's library(lambda)
is an important recent proposal for
lambda expressions in ISO Prolog. Use this
library in cases where you would like to call variations of
predicates without introducing auxiliary predicates.
Richard O'Keefe's
draft, An
Elementary Prolog Library, also contains descriptions and
implementations for many important higher-order predicates.
More about Prolog
Main page


Exploratory analysis on any input data describing the structure and the relationships present in the data. The package automatically select the variable and does related descriptive statistics. Analyzing information value, weight of evidence, custom tables, summary statistics, graphical techniques will be performed for both numeric and categorical predictors.
| Version: | 0.3.0 |
| Depends: | R (≥ 3.3.0) |
| Imports: | ggplot2 (≥ 2.2.1), scales (≥ 0.5.0), utils, rmarkdown (≥ 1.9), ISLR (≥ 1.2), data.table (≥ 1.10.4-3), stringi (≥ 1.1.7), gridExtra (≥ 2.3), sampling (≥ 2.8), GGally (≥ 1.4.0) |
| Suggests: | psych, Hmisc, smbinning, testthat, knitr, covr |
| Published: | 2018-07-25 |
| Author: | Dayanand Ubrangala; Kiran R; Ravi Prasad Kondapalli |
| Maintainer: | Dayanand Ubrangala <daya6489 at gmail.com> |
| License: | MIT + file LICENSE |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | SmartEDA results |
| Reference manual: | SmartEDA.pdf |
| Vignettes: |
Custom summary statistics Explore data using SmartEDA (Intro) |
| Package source: | SmartEDA_0.3.0.tar.gz |
| Windows binaries: | r-devel: SmartEDA_0.3.0.zip, r-release: SmartEDA_0.3.0.zip, r-oldrel: SmartEDA_0.2.0.zip |
| OS X binaries: | r-release: SmartEDA_0.2.0.tgz, r-oldrel: SmartEDA_0.2.0.tgz |
| Old sources: | SmartEDA archive |
Please use the canonical form https://CRAN.R-project.org/package=SmartEDA to link to this page.


Malang's history stretches back to ancient times, with the oldest records of the city dating back to the eighth century, when it was then the capital of the Kanjuruhan and Singhasari kingdoms. Several Hindu temples and relics including the Singosari Temple from the 12th century are scattered throughout the city.
Today, Malang is a thriving cultural centre with its own unique character. Identifying themselves as the Arema culture, Malang residents take great pride in preserving and performing their traditional music, theatre and sports activities. Outside the city are some stunning mountains and national parks for nature lovers to explore. Within easy reach is East Java's main port city, Surabaya.


The materials artists used, the paints they made, how they made them tell us much about their lives, and of those around them
Chemicals used, techniques deployed help us to isolate influences, where people travelled, who they learned from
This helps us to understand the creative process, where artists changed their minds, what happy accidents led to the works we revere


Hello,I am Aman Borkar and I’m a computer science undergraduate from Indian Institute of Information Technology Pune. The undergraduate curriculum in Computer Science and Engineering at IIIT Pune introduces me to a wide variety of engineering subjects.
In my internship program I have implemented a Deep Learning model in which I have used LSTM (long short memory cells) layer to predict the protein structure and accuracy was about 92% and used various optimizers and error functions to study how model prediction varies and have done data parsing, used pandas, keras, sci-kit learn libraries and used cross validation and n-fold cross validation technique And learned bagging and boosting methods.
• Active participation and implementation of Android App in Android Application Development workshop held in our college after first semester.
CGPA: 8.00
Percentage: 88.92%
Percentage: 92.80%
The chatbot I prepared was self-learning retrieval based chatbot which uses Sentimental analysis. Used pre-processing techniques like tokenizing, stemming, lemmatization and TF-IDF vector and cosine similarities etc. Main focus was sentimental analysis.
In this project the color images got after cutting the video into frames and pre-processing these images using morphological operation we get a noiseless and minimum errror image which are fed to CNN model to know ASL(American Sign language) which is usedd by deaf and dumb people.


Quickly upload your file, share the link with your friend or colleague, and they are immediately able to download the file without any limiting or waiting! Files can be downloaded by anyone, any number of times, for 48 hours. After these 48 hours, the files are completely removed from the database.
Your file has been successfully uploaded, and the unique URL can be found below. This URL can be used by anyone to download the file for 48 hours, and then the file will be removed from the database.


Yongliang Tan
I am a student at Northeastern University's(Silicon Valley campus) Computer Science Master program. I am actively looking for full-time software engineering position.
I am a student at Northeastern University's(Silicon Valley campus) Computer Science Master program. I am actively looking for full-time software engineering position.
GPA: 3.9/4.0
GPA: 3.6/4.0
GPA: 3.9/4.0


Hi!  Experienced with all stages of the development cycle for dynamic web projects.Having an knowledge including advanced HTML5, CSS, CSS3, SASS, LESS, JSON, XML, Java, JavaScript, JQuery, React JS.
I completed all my computer science subject. My thesis defense is Platform for streaming community which apply ReactJS,Socket.io,ExpressJs,...
First I learn PHP syntax and build project with PHP Next I learn CodeIgniter and convert project from pure PHP to CI
Learning how to install Linux Distro Ubuntu, Kubuntu, Centos,.. Learn how to using basic command of linux. Deploy PHP project via SSH pm VPS using CentOS
Learning NodeJS Start with ExpressJS Next Learning Using ReactJS
E-commerce using WordPress and Woocommerce
First of all I love music, country music is my favorite. Love watching football, movies and playing games with my buddies. I spend quite a lot of time in playing sport and video games, these keeps me fresh for working environment.


{% extends 'layouts/_base.html' %} {% from "components/button/_macro.njk" import onsButton %} {% from "components/collapsible/_macro.njk" import onsCollapsible %} {% from "components/list/_macro.njk" import onsList %} {% set page_title = survey_info.longName ~ ' ' ~ collection_exercise_info.userDescription %} {% block content %}
{{ survey_info.shortName }} spreadsheet for {{ business_info.name }}
Please download the correct spreadsheet for the period {{ collection_exercise_info.userDescription }} by using the "Download spreadsheet" button.
If actual figures are not available, please provide informed estimates.
Do not use an older version as we will not be able to process your data.
{{ onsButton({ "url": url_for('surveys_bp.download_survey', case_id=case_id, business_party_id=business_info.id, survey_short_name=survey_info.shortName), "text": 'Download spreadsheetPlease upload by {{ collection_exercise_info.scheduledReturnDateTimeFormatted }}
{% endif %} {% call onsCollapsible({ "id": "collapsible", "classes": "ons-u-mb-m", "title": "Guidance for uploading", "button": { "close": "Hide this", "contextSuffix": "content" } }) %}We will treat your data securely and confidentially
Please upload the correct version of the file for the period {{ collection_exercise_info.userDescription }}.
Do not upload an older version as we will not be able to process your data.
{% include "surveys/surveys-upload-file-picker.html" %} {% endblock content %}


This report is in three parts.
-History, which is about me, in case anyone wants to see if they relate.
-The abbreviated eight week report of my personal DMAE experience.
-Ending with conclusion and advice on the chemical. Skip to this part if you just want to get the general idea.
HISTORY:
Iíd never been a great student, mostly just coasting along with average grades. Iíve always had problems concentrating during lectures and memorizing concepts. Procrastination is my worst enemy. I consider myself an extremely scatter-brained kind of guy, always making it hard to motivate myself to learn anything. But the difference between me and one with ADD is that I can actually get the work done, get the information memorized, get the paper written, and solve the problems. Itís not as though I canít function, itís just a little harder for me to find motivation and concentration.
I got through high school with a C average and went off to community college. College became very difficult very quickly.  I only had class three days a week. Iíd put off math, delay writing papers, and procrastinate reading. Plus all the freedom allowed me to fall into terrible habits of self-indulgence, like drinking, tripping, and smoking. This didnít help my mind or my grades, it only made me more lazy and slow.
For a short period of time I could get a hold of adderall. It was basically my ďsave the dayĒ button. Iíd take it and get everything done quickly and efficiently. It got to the point where I could not do work without it. Sadly I lost the only connection I had, which just made school even harder. So with the thought of my future in mind, I decided to find an alternative. It didnít take long for me to stumble across DMAE.
I bought some from a local health food store, one-hundred 130mg capsules for $15(USD). It was still summer break and I had no classes for two more weeks. I decided that these two weeks would be the testing weeks, to find if it would work for me. As recommended by a few sources, I kept a log detailing my personal reaction.
DAY 1:
Took one 130mg tablet in the morning.  Within an hour I felt a feeling comparable to an amphetamine buzz. A slight and subtle off baseline feeling of stimulation. My thoughts werenít as scattered as they normally are, I could follow specific thoughts from point A to B to C and so on. It was much easier to read my novel, I could sustain my attention for a bit longer than normal. I felt no different otherwise. Within about two and a half hours after the initial dose, the feeling faded. I took one more in the afternoon and got the slight buzz for about another thirty minutes.
DAY 2:
Took two in the morning and went to work at the drug store. The first hour of work was great, I felt a slight speedy euphoria. Talking and listening to customers was a bit more enjoyable than normal, though it faded fast. After that first hour I just got annoyed a lot easier, though I did notice mental clarity for the rest of the day.
DAY 3:
Iíd been trying to abstain from marijuana during the DMAE trials, but found it once again difficult to fight off the urge to toke up with a good friend of mine who just purchased an eighth of indoor heads. I took two tablets in the morning and smoked an hour afterwards. It was amazing, but not quite as amazing as weed and amphetamines. Though it did give me that wonderful feeling of ďstoned with motivation and awareness,Ē just not as euphoric. I took two more around noon and found it much easier to recover from a morning of pot smoking. I found it hard to sleep that night, which is odd for me. I normally fall asleep fast and stay asleep for a decent amount of time.
DAY 4:
I woke feeling oddly refreshed, despite the loss of sleep. Took three at once in the morning and went to work. It was really nice. The effects of the DMAE didnít change quite that much, but I did notice a slight change in my personality.  Iíd always been a relatively introverted person, but with the help of DMAE I felt a bit more confident in approaching strangers and striking up conversation. The feeling of the drugís presence were still subtle at best. Even after the hours of initial affect, I still felt pretty good. I took two more around 5pm and found it a bit difficult to fall asleep again. This was the first night I noticed very vivid and memorable dreams. Nothing significant, but it still felt great to wake up in the morning and contemplate my dreams.
DAY 5:
I decide to limit myself with 2-3 in the morning and 1-2 in the afternoon from now on. It proves to be effective for quite a while. Today I notice my emotions are a little weird. Iíd be in a perfectly content state of mind for the majority of the day, but I would sporadically get irritated and annoyed with external things. People making careless mistakes, thoughtless remarks, random little everyday annoyances bothered me more than normal. My mind felt slightly condescending towards others, which is quite unusual for me.
DAY 6:
I got drunk that night. I always loved drinking on adderall, it allowed me to maintain a sense of soberness no matter how much I drank. Itís not this way with DMAE. I felt the normal buzz creep up on me after two to three drinks. I was on my fourth when I suddenly got really dizzy and nauseous. I put down my drink and reclined, but the feeling would not subside. I felt much more drunk than I should have from three and a half beers in an hour. A friend offered me a bowl hit, which I gladly accepted. The nausea was gone, but I still felt dizzy. After eating two hotdogs I felt better, but still a little muddled.
DAY 7:
Went without it today. I didnít want to build a huge tolerance before school, plus I was interested to see if there was any withdrawal. Yes and no... I felt pretty good in the morning, all the usual effect of the week were still fresh within me. Around 1pm I felt a bit down, not depressed. My attention was a little more unfocused and thoughts were going back into their old sporadic habits. By the end of the day I felt notably normal.
WEEK 2:
I went without it for a few more days, just to make sure I could. I did, but I really would have liked to be on it. Much like a mild marijuana withdrawal if anyone can relate. I want it, but donít necessarily need it. I got back on my typical dose two days before school started. It was great to have the subtle feeling of empowerment back in my life. School went very well. I could remain focused on the lecture, take down lots of notes, not get bored as easily, and I didnít once feel tired or unmotivated. I even started conversations with a few random people.
WEEK 3:
School has never been better. The work is getting done, the studying is getting completed, and everything in between is going well too. I can now smoke marijuana every now and then and not have to worry about its mind-slowing side effects. I havenít tried drinking more than a couple beers though, the last experience left a bad taste in my mouth. Towards the end of the week I start to increase my dose.
WEEK 4:
The word tolerance starts to bounce around in my mind as I find myself not even feeling the subtle effects anymore. I begin to take more, a lot more. Some days Iíd take a total of ten to twenty just to stay ahead. I started getting headaches and muscle aches very frequently, which just lead to further irritability. It was sometime this week that I completely stopped all together. I found myself staring down the slippery slope of addiction once again. I threw away the bottle, knowing it was probably for the best.
WEEK 5-8:
Withdrawal wasnít bad at all. My emotional state went from frantically manic to slightly depressed to normal within a few days. School still remained rather easy for me, mostly because DMAE taught me how to prioritize work and take notes efficiently. Of course it was much harder to focus in its absence, I still managed to pass with very good grades, making this one of the most successful academic sessions of my life.
Conclusion:
I felt as though I was chasing a state of mind towards the end of my DMAE use. This is probably because of my addictive personality. Overall it helped me tremendously, and I do believe it can help others too. I did take it a few more times towards the end of the semester to help with finals, my friend took it as well and let me have a few. I didnít do too much for me then, but I hope it will in the future. Iíve learned not to abuse these kind of things.
My advice:
-Itís impossible to fight tolerance, so DMAE should only be used for a little while at a time, only when necessary. If you abuse it too much and too frequently it will quickly loose its ďmagic.Ē
-Itís a powerful ally, but you must have patience. Donít expect immediate results, wait a week or so and start your dose out low, gradually increasing over time.
-Donít expect a completely amphetamine-like high. DMAE is much more subtle, it will effect you in a different way.
-DMAE is not intense like other stimulants. Itís widely accepted, and I somewhat agree, that it will actually reduce anxiety and stress.
-There are no known adverse interactions with other drugs, but still BE CAREFUL.
-Itís best to dose in the mornings and in the afternoon, no later than 5pm.
-It may just be me, but I recommend avoiding a lot of alcohol.
-If you do get headaches or muscle aches, lower the dose.
Good luck my friends,
-D
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.