fix atan() for -ve angles
This commit is contained in:
parent
2620f3b8c9
commit
32f6f5ed22
22
TODO
22
TODO
@ -1,3 +1,25 @@
|
|||||||
|
- we need to be able to run .polar() on xyz images ... argh
|
||||||
|
|
||||||
|
- could special-case vips_complex() to work for multi-band int images as
|
||||||
|
well as complex
|
||||||
|
|
||||||
|
would need to output as multi-band float
|
||||||
|
|
||||||
|
what about other cases though? cast real to complex?
|
||||||
|
|
||||||
|
- could add new ops for polar/rect of real images with two bands
|
||||||
|
|
||||||
|
- could add a thing to Vips.py to do this
|
||||||
|
|
||||||
|
- could add full support for complex arithmetic ... linear would need an
|
||||||
|
extra arg for complex constants
|
||||||
|
|
||||||
|
- could abandon complex images and just use 2*bands instead, have complex
|
||||||
|
as a flag you set? or just rely on FOURIER
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- easy to get a segv with Nicolas's interpolators, argh
|
- easy to get a segv with Nicolas's interpolators, argh
|
||||||
|
|
||||||
just with float images?
|
just with float images?
|
||||||
|
@ -25,7 +25,6 @@ TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
|
|||||||
|
|
||||||
SETUP_FILES = \
|
SETUP_FILES = \
|
||||||
$(content_files) \
|
$(content_files) \
|
||||||
$(expand_content_files) \
|
|
||||||
$(DOC_MAIN_SGML_FILE) \
|
$(DOC_MAIN_SGML_FILE) \
|
||||||
$(DOC_MODULE)-sections.txt \
|
$(DOC_MODULE)-sections.txt \
|
||||||
$(DOC_MODULE)-overrides.txt
|
$(DOC_MODULE)-overrides.txt
|
||||||
@ -87,7 +86,7 @@ GTK_DOC_V_SETUP_0=@echo " DOC Preparing build";
|
|||||||
|
|
||||||
setup-build.stamp:
|
setup-build.stamp:
|
||||||
-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
|
-$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
|
||||||
files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \
|
files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \
|
||||||
if test "x$$files" != "x" ; then \
|
if test "x$$files" != "x" ; then \
|
||||||
for file in $$files ; do \
|
for file in $$files ; do \
|
||||||
destdir=`dirname $(abs_builddir)/$$file`; \
|
destdir=`dirname $(abs_builddir)/$$file`; \
|
||||||
@ -119,7 +118,7 @@ scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB)
|
|||||||
$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
|
$(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \
|
||||||
scanobj_options=""; \
|
scanobj_options=""; \
|
||||||
gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||||
if test "$$?" = "0"; then \
|
if test "$(?)" = "0"; then \
|
||||||
if test "x$(V)" = "x1"; then \
|
if test "x$(V)" = "x1"; then \
|
||||||
scanobj_options="--verbose"; \
|
scanobj_options="--verbose"; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -163,17 +162,17 @@ GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V))
|
|||||||
GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
|
GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY))
|
||||||
GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references";
|
GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references";
|
||||||
|
|
||||||
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
|
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
|
||||||
$(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
|
$(GTK_DOC_V_HTML)rm -rf html && mkdir html && \
|
||||||
mkhtml_options=""; \
|
mkhtml_options=""; \
|
||||||
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||||
if test "$$?" = "0"; then \
|
if test "$(?)" = "0"; then \
|
||||||
if test "x$(V)" = "x1"; then \
|
if test "x$(V)" = "x1"; then \
|
||||||
mkhtml_options="$$mkhtml_options --verbose"; \
|
mkhtml_options="$$mkhtml_options --verbose"; \
|
||||||
fi; \
|
fi; \
|
||||||
fi; \
|
fi; \
|
||||||
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
|
gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
|
||||||
if test "$$?" = "0"; then \
|
if test "$(?)" = "0"; then \
|
||||||
mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
|
mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \
|
||||||
fi; \
|
fi; \
|
||||||
cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
|
cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
|
||||||
@ -195,11 +194,11 @@ GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V))
|
|||||||
GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
|
GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY))
|
||||||
GTK_DOC_V_PDF_0=@echo " DOC Building PDF";
|
GTK_DOC_V_PDF_0=@echo " DOC Building PDF";
|
||||||
|
|
||||||
pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files)
|
pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
|
||||||
$(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
|
$(GTK_DOC_V_PDF)rm -f $(DOC_MODULE).pdf && \
|
||||||
mkpdf_options=""; \
|
mkpdf_options=""; \
|
||||||
gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \
|
||||||
if test "$$?" = "0"; then \
|
if test "$(?)" = "0"; then \
|
||||||
if test "x$(V)" = "x1"; then \
|
if test "x$(V)" = "x1"; then \
|
||||||
mkpdf_options="$$mkpdf_options --verbose"; \
|
mkpdf_options="$$mkpdf_options --verbose"; \
|
||||||
fi; \
|
fi; \
|
||||||
@ -224,15 +223,12 @@ clean-local:
|
|||||||
@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
|
@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-types" ; then \
|
||||||
rm -f $(DOC_MODULE).types; \
|
rm -f $(DOC_MODULE).types; \
|
||||||
fi
|
fi
|
||||||
@if echo $(SCAN_OPTIONS) | grep -q "\-\-rebuild-sections" ; then \
|
|
||||||
rm -f $(DOC_MODULE)-sections.txt; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
distclean-local:
|
distclean-local:
|
||||||
@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
|
@rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \
|
||||||
$(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
|
$(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
|
||||||
@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
|
@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
|
||||||
rm -f $(SETUP_FILES) $(DOC_MODULE).types; \
|
rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
maintainer-clean-local:
|
maintainer-clean-local:
|
||||||
|
@ -152,6 +152,8 @@ vips_complex_atan2( double a, double b )
|
|||||||
|
|
||||||
#ifdef HAVE_ATAN2
|
#ifdef HAVE_ATAN2
|
||||||
h = VIPS_DEG( atan2( b, a ) );
|
h = VIPS_DEG( atan2( b, a ) );
|
||||||
|
if( h < 0.0 )
|
||||||
|
h += 360;
|
||||||
#else
|
#else
|
||||||
h = vips_col_ab2h( a, b );
|
h = vips_col_ab2h( a, b );
|
||||||
#endif
|
#endif
|
||||||
|
@ -65,6 +65,8 @@ vips_col_ab2h( double a, double b )
|
|||||||
|
|
||||||
#ifdef HAVE_ATAN2
|
#ifdef HAVE_ATAN2
|
||||||
h = VIPS_DEG( atan2( b, a ) );
|
h = VIPS_DEG( atan2( b, a ) );
|
||||||
|
if( h < 0.0 )
|
||||||
|
h += 360;
|
||||||
#else
|
#else
|
||||||
/* We have to get the right quadrant!
|
/* We have to get the right quadrant!
|
||||||
*/
|
*/
|
||||||
@ -97,6 +99,8 @@ vips_col_ab2Ch( float a, float b, float *C, float *h )
|
|||||||
{
|
{
|
||||||
#ifdef HAVE_ATAN2
|
#ifdef HAVE_ATAN2
|
||||||
*h = VIPS_DEG( atan2( b, a ) );
|
*h = VIPS_DEG( atan2( b, a ) );
|
||||||
|
if( *h < 0.0 )
|
||||||
|
*h += 360;
|
||||||
#else
|
#else
|
||||||
*h = vips_col_ab2h( a, b );
|
*h = vips_col_ab2h( a, b );
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user